一、repeat语句格式
repeat语句用于“重复执行循环体,直到指定的条件为真时为止”

repeat语句格式:
repeat
  语句1;
  语句2;
  ……
  语句n;
until 布尔表达式;

repeat重复基本上有与while重复一样的描述循环计算的能力,但有三点不同:
1、在repeat语句中,布尔表达式求值在循环体执行之后,而在while语句中,布尔表达式求值在循环体执行之前。
2、while语句的循环体部分只能是一个语句,因此当重复动作包含几个语句时,需用begin和end使它们变成一个复合语句。而repeat语句的保留字repeat和until已起到语句括号作用,可以包含多个语句而无需begin和end。
3、repeat语句中,仅当布尔表达式值为true时结束循环,而while语句是当布尔表达式值为false时才结束循环。

一般,“repeat 语句; until 布尔表达式;”能用while语句表示为:“while not (布尔表达式) do 语句;”

例1:有一大堆核桃,两个两个拿,余下一个;三个三个拿,余下两个;四个四个拿,余下三个;以此类推,直至九个九个拿,余下八个。输出这一大堆核桃最少是几个?
var
  i:integer;
begin
  i:=10;
  repeat
    i:=i+1;
  until (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) and (i mod 8=7) and (i mod 9=8);
  writeln(i);
end.

例2:利用格里高利公式:π/4=1-1/3+1/5-1/7+1/9-1/11……输出π的值,要求精确到小数点后第六位。
var
  n,s:longint;
  t,pi:real;
begin
  pi:=0;
  t:=1;
  n:=1;
  s:=1;
  repeat
    pi:=pi+t;
    n:=n+2;
    s:=-s;
    t:=s/n;
  until abs(t)<0.000001;
  pi:=pi*4;
  writeln(pi:0:6);
end.

例3:有一个自然数,它的各位数字之和能被17整除。这个数的后继数(即这个数加1)的各位数字之和也能被17整除。编程输出具有这种特性的最小的那个自然数。
var
  f:boolean;
  i,s,m,t:integer;
begin
  f:=false;
  i:=1;
  repeat
    i:=i+1;
    s:=0;
    m:=i;
    while m>0 do begin
      s:=s+m mod 10;
      m:=m div 10;
    end;
    if s mod 17=0 then begin
      s:=0;
      m:=i+1;
      while m>0 do begin
        s:=s+m mod 10;
        m:=m div 10;
      end;
      if s mod 17=0 then f:=true; 
    end;
  until f;
  writeln(i);
end.

思考:优化一下,i可以从几开始?

例4:哥德巴赫猜想指出:任何一个大偶数都可以表示成两个素数的和。例如:8=3+5,44=13+31等,请编程在6至100范围内验证哥德巴赫猜想。
var
  i,j,k,m,n:integer;
  f,b:boolean;
begin
  i:=6;
  repeat
    j:=3;
    f:=true;
    while (j<=i div 2) and f do begin
      b:=true;
      k:=i-j;
      m:=2;
      n:=trunc(sqrt(k));
      while b and (m<=n) do begin
        if (j mod m=0) or (k mod m=0) then b:=false;
        m:=m+1;
      end;
      if b then begin
        writeln(i,'=',j,'+',k);
        f:=false;
      end;
      j:=j+2;
    end;
    i:=i+2;
  until i>100;
end.

二、作业
1、zerojudge:a518
2、输出1至100之间所有的素数。
3、输出2至1000之间所有的完数,完数是指此数的所有因子之和等于此数,如:28=1+2+4+7+14。

repeat语句的更多相关文章

  1. Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数

    if语法 :   if [ expression ]    then   commandselif [ expression2 ]   then   commandselse   commandsfi ...

  2. Delphi编程建议遵守的规范1---缩进、各种语句的用法

    在编程时候,尤其是在一个大的团队里面,遵守统一的编程规范是极其重要的.为所有的开发人员制定一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致的格式,这样,每个编程人员编写的代码能够被其 ...

  3. do-while语句

    一.语句格式格式1:do  语句1;while (条件表达式); 格式2:do {  语句1;  语句2;  -}while (条件表达式); 语句执行过程:1.执行一遍循环体.2.求出作为循环条件的 ...

  4. Verilog HDL常用的行为仿真描述语句

    一.循环语句 1.forever语句 forever语句必须写在initial模块中,主要用于产生周期性波形. 2.利用for.while循环语句完成遍历 for.while语句常用于完成遍历测试.当 ...

  5. 写自己的第二级处理器(3)——Verilog HDL行为语句

    我们会继续上传新书<自己动手写处理器>(未公布),今天是第七章,我每星期试试4 2.6 Verilog HDL行为语句 2.6.1 过程语句 Verilog定义的模块一般包含有过程语句,过 ...

  6. R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...

  7. Delphi备忘录——基本语句

    选择语句: 1.If-Then-Else选择语句: If (表达式) Then Begin 语句块; End Else If(表达式) Then Begin 语句块; End; Else Begin ...

  8. MySQL中SQL语句2

    上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...

  9. Verilog学习笔记基本语法篇(六)········ 循环语句

    在Verilog中存在着4种类型的循环语句,用来控制执行语句的执行次数. 1)forever语句: 连续执行的语句. 2)repeat语句:  连续执行n次的语句. 3)while语句:    执行语 ...

随机推荐

  1. Material Design之TextInputLayout使用示例

    Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...

  2. Swift学习

    Swift 中文教程(一)基础数据类型 基础类型 虽然Swift是一个为开发iOS和OS X app设计的全新编程语言,但是Swift的很多特性还是跟和Objective-C相似. Swift也提供了 ...

  3. C++ UFunction({FLAG}) 宏 FLAG 解释笔记

    1.BluePrintCallable  --蓝图可调用 但不可编辑 2.BlueprintImplementableEvent --函数体必须实现与Blueprint 但函数名必须生成与C++ .h ...

  4. Java数据结构和算法之栈与队列

    二.栈与队列 1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶(Top),另一端称为栈底(Bottom). (2)当表中没有元素时称为 ...

  5. Lintcode Perfect Squares

    Given a positive integer n, find the least number of perfect square numbers (for example,1, 4, 9, 16 ...

  6. sql CONCAT字符串连接函数

    有的时候,我们有需要将由不同栏位获得的资料串连在一起.每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + C ...

  7. ueditor在使用requirejs时,报ZeroClipboard undefined错误

    再网上找到了 http://blog.csdn.net/xundh/article/details/44536665       这样一篇文章, 其中原因说的很明白了 是因为在有requirejs时, ...

  8. 第一篇T语言实例开发(版本5.3),带错误检测的加减乘除运算器

    带错误检测的加减乘除运算器 表达式 TC综合开发工具里的表达式大体分为:计算表达式.条件表达式 计算表达式: 它一般是用在赋值过程中,或者是和条件表达式混合使用这样的表达式里只有数字运算符(如:+.- ...

  9. JavaScript中“typeof”运算符与“instanceof”运算符的差异

    在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢? 差异一:使用方式不同. 最明显的差异就是这两个运算符的使用方式了 ...

  10. Yahoo Pure 中文参考手册

    Pure 是来自雅虎的 CSS 框架,使用 Normalize.CSS 无需任何 JavaScript 代码.框架基于响应式设计,提供多种样式的组件,包括表格.表单.按钮.表.导航等.标识使用非常简单 ...