// PascalABC.NET 3.2, сборка 1353 от 27.11.2016 // Внимание! Если программа не работает, обновите версию!
begin // заполним информацию случайным образом; // если хорошистов в результате не окажется, // просто перезапускаем задачу randomize; var a:=MatrRandom(13,10,4,5); // везде только 4 и 5 for var i:=1 to 20 do // раскидаем 20 троек a[Random(13),Random(10)]:=3; a.Println(2); Writeln; // собственно, решение var k:=0; foreach var r in a.Rows do if r.All(x->x<>3) and not r.All(x->x=5) then k+=1; Writeln(k,' хорошистов') end.
Program prog1; Uses crt; var a: array [1..50] of integer; k, i: integer; begin clrscr; randomize; for i:=1 to 50 do begin a[i]:= random(41); write(a[i],' '); if a[i]=23 then inc(k); end; writeln;writeln; writeln('k = ',k); end.
Program prog2; Uses crt; var a: array [1..50] of integer; i: integer; begin clrscr; randomize; for i:=1 to 50 do begin a[i]:= random(41); write(a[i],' '); if (a[i] mod 5) =0 then a[i]:=-1; end; writeln;writeln; for i:=1 to 50 do write(a[i],' '); end.
Program prog3; Uses crt; var a: array [1..10] of integer; tmp, i: integer; begin clrscr; randomize; for i:=1 to 10 do begin a[i]:= random(41); write(a[i],' '); end; tmp:=a[2]; a[2]:=a[9]; a[9]:=tmp; writeln;writeln; for i:=1 to 10 do write(a[i],' '); end.
Program prog4; Uses crt; var a: array [1..100] of integer; n, i,k: integer; begin clrscr; randomize; write('N = '); readln(n); for i:=1 to n do begin a[i]:= random(41); write(a[i],' '); end; writeln;writeln; for i:=1 to n-1 do if ((a[i] mod 10)=2)and((a[i+1] mod 10)=2) then inc(k); writeln('k = ', k); end.
1. В каких случаях используется оператор цикла с параметром? Как он оформляется? Как он работает (что происходит при его выполнении)? Нарисуйте графическую схему выполнения.
2. Что такое "тело оператора цикла"?
3. Может ли тело оператора цикла с параметром не выполниться ни разу?
4. Как должен быть оформлен оператор цикла с параметром, чтобы тело цикла выполнялось при уменьшающихся значениях параметра цикла? Как он будет работать (что будет происходить при его выполнении)? Нарисуйте графическую схему выполнения.
5. Чему равно количество повторений тела оператора цикла с параметром, если параметр цикла принимает:
а) все целые значения от 1 до 10? б) все целые значения от a до b? в) все нечетные значения от 1 до 20?1 г) все нечетные значения от 1 до n?2 д) все значения от 10 до 100 с шагом 7?3 е) все значения от 1,5 до 10,3 с шагом 0,4?4 ж) все значения от a до b с шагом step?5
6. Можно ли в теле оператора цикла с параметром не использовать величину- параметр цикла?
7. Почему в программировании существует правило: нельзя изменять параметр цикла в теле оператора цикла? Правильно?
// Внимание! Если программа не работает, обновите версию!
begin
// заполним информацию случайным образом;
// если хорошистов в результате не окажется,
// просто перезапускаем задачу
randomize;
var a:=MatrRandom(13,10,4,5); // везде только 4 и 5
for var i:=1 to 20 do // раскидаем 20 троек
a[Random(13),Random(10)]:=3;
a.Println(2); Writeln;
// собственно, решение
var k:=0;
foreach var r in a.Rows do
if r.All(x->x<>3) and not r.All(x->x=5) then k+=1;
Writeln(k,' хорошистов')
end.
Пример
5 5 4 4 4 5 3 3 4 4
5 4 4 4 3 4 5 5 4 5
5 5 5 3 5 4 4 5 5 4
3 5 4 3 4 4 5 5 5 3
5 3 4 4 5 4 4 5 5 4
3 5 5 5 5 4 4 4 4 3
4 4 5 3 5 4 4 5 4 5
4 5 4 4 4 4 4 4 5 4
3 5 3 4 4 4 4 4 5 3
5 5 4 5 4 4 4 5 4 5
4 5 4 5 4 5 3 4 5 5
4 5 4 4 4 4 5 4 4 5
4 3 5 4 4 4 5 5 3 5
3 хорошистов