русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор цикла с параметром (For)


Дата добавления: 2014-11-28; просмотров: 2039; Нарушение авторских прав


Оператор цикла с параметром имеет вид:

For <параметр_цикла> := <нач.знач.> To < конеч.знач.> Do <оператор>;

где <параметр_цикла> - переменная любого порядкового типа;

<нач.знач.> - начальное значение - выражение того же типа;

<конеч.знач.> - конечное значение - выражение того же типа;

На месте одного оператора может располагаться группа операторов, заключённых в операторные скобки (Begin ... end).

Для более гибкого управления операторами циклов For, While, Repeat в ТР введены две процедуры:

BREAK- реализует немедленный выход из цикла; действие процедуры заключается в передаче управления оператору, стоящему сразу за после последнего оператора цикла.

CONTINUE- обеспечивает досрочное завершение очередного прохода цикла, что эквивалентно передаче управления в самый конец циклического оператора.

 

Контрольные вопросы:

1. Определите, сколько раз будет выполнено тело цикла в приведенном фрагменте программы:

s:=0; i:=1; read(n);

while i<=n do;

begin s:=s+i;

i:=i+2;

end;

2. Нарисуйте блок-схему алгоритма, содержащего в цикле два идущих подряд условных блока.

3. Нарисуйте блок-схему алгоритма, содержащего в цикле два вложенных друг в друга условных блока.

4. Установите, какую задачу решают предложенные фрагменты программ (везде n – натуральное число). Ответьте на вопросы.

1) s:=0;

i:=n;

while i>0 do

begin s:=s+i;

i:=i-1

end.



Запишите данный фрагмент с помощью операторов for… и repeat … until.

2) s:=0;

i:=1;

j:=n;

while i<=j do

begin s:=s+i+j;

i:=i+1;

j:=j-1

end;

if n mod 2=1

then s:=s-n mod 2+1.

В каких случаях выполнится условный оператор, записанный после цикла?

3) s:=0; i:=56; j:=1;

while i<=56+2*(n-1) do

begin s:=s+j;

j:=j+1;

i:=i+2

end.



Можно ли в последнем фрагменте переменную j выразить через переменную i и убрать j из программы?

5. Правильно ли записаны на Паскале операторы цикла? Если «Да», то подсчитайте, сколько раз выполняется тело цикла. Если «Нет», объясните ошибки.

1) while true do i:=i+1;

2) for z:=1 to 2*z do i:=i+1;

3) while false do i:=i-1;

4) for u:=2*a downto –1 do i:=i-1;

5) for i:=j to j+1 do s:=s+i;

6) k:=0;

for i:=2 downto k do k:=k*2;

7) j:=56;

for i:=-4 to j div 7 do j:=j-2;

8) j:=56;

i:=-4;

while i<=j div 7 do

begin j:=j-2;

i:=i-1

end;

9) for i:=1 to n do a[i]:=2*i+6;

for a[1]:=1 to n do write(a[a[1]],' ');

10) i:=5;while i>0 do i:=i+1;

11) i:=5;while i<=0 do i:=i-1;

12) i:=5;while i>=0 do i:=i-1;

13) i:=5;while i<=0 do i:=i+1;

14) i:=90;repeat i:=i-1 until i>0;

15) i:=90;repeat i:=i-1 until i<=0;

16) i:=9;repeat i:=i+1 until i>10;

17) i:=9;repeat i:=i+1 until i<=10;

18) i:=9;repeat i:=i-1 until false;

19) i:=9;repeat i:=i+1 until true;

20) i:=9;repeat i:=i*2 until false and not false;

21) i:=9;repeat i:=i/2 until true or false;

22) i:=9;repeat i:=i/2 until true and false;

23) i:=9;repeat i:=i*2 until not (i<9) and (i>=9);

24) i:=9;while (i<=100) and (i>100) do i:=i+1;

25) i:=9;while (i<=100) do i:=i div 2;

26) for i:=9 downto i div 2 do i:=i div 2;

27) while read(x) do write(x);

28) for i:=-1 to –10 do write(i+1);

29) i:=1; while i<2 do i:=j;

30) while x<1 do x:=x>0;

31) k:=0; for i:=1 to 8 do; k:=k+i;

32) g:=9; for i:=1.0 downto –1.0 do g:=g*2;

33) g:=1; for i:=1 downto –16 d0 g:=g*2;

35) for i+j:=1 to n do read(a,b,c);

38) for if:=1 to 10 do write('then 1 else 2');

39) for x>0 to 35 do readln;

41) x:=1; repeat x:=x+1 until 100;

42) repeat true until true;

43) x:=0; repeat x:=x+1 until x<0;

6. Установите, чему равен х:

1) x:=0;

for i:=-5 to 0 do

n:=i*i;

x:=x+n;

2) n:=5;

x:=0;

for i:=1 to n do x:=i;

writeln(x);

3) for i:=1 to 5 do

for j:=1 to 5 do write('x');

Исправьте этот фрагмент так, чтобы вывод составил квадрат размером 5*5;

4) n:=0;

while n<=10 do

begin x:=n*n;

writeln(n:6,' ',x:6)

end;

Как нужно изменить этот фрагмент, чтобы были выведены числа от 1 до 10 и их квадраты. Как ту же задачу можно решить с помощью оператора for?

5) x:=0;

while x<5 do x:=x+1;

6) x:=0;i:=0;

while i<5 do i:=i+1; s:=s+1/i;

7) x:=0;i:=1;

while i>1 do begin x:=x+1/i; i:=i-1 end;

8) x:=0 i:=1;

repeat x:=x+1/i; i:=i-1 until i<=1;

9) x:=1; n:=1;

for i:=2 to n do x:=x+1/i.

 

7. Определите значение переменной s после выполнения следующих операторов:

s:=0; n:=10;

for i:=2 to n do s:=s+100 div i.

8. Установите, какую задачу решает каждый из предложенных фрагментов программ:

1) readln(n);

s:=0;

while n>0 do

begin s:=s*10+n mod 10;

n:=n div 10

end;

2) s:=0;

for i:=1 to n do

for j:=i+1 to n do s:=s-a[j,i];

3) s:=0;

for i:=3 downto –2 do

if i mod 2=0

then s:=s-i

else s:=s+i;

4) i:=p; j:=q;

while i<j do

begin r:=a[i]; a[i]:=a[j]; a[j]:=r;

i:=i+1;

j:=j-1

end;

5) p:=1; i:=1; y:=x;

while i<=n do

begin y:=sin(y);

p:=p*y;

i:=i+2

end;

6) s:=0;

for i:=n downto 1 do

begin p:=1;

for j:=1 to i do p:=p*j;

s:=s+p

end;

7) i:=1; j:=n;

while i<=j do

begin read(a[i],a[j]);

i:=i+1;

j:=j-1

end.



9. Студент решал задачу: «Натуральные числа вводятся в порядке возрастания до появления нуля (признак окончания ввода). Нужно напечатать факториалы всех введенных чисел. Программа должна быть эффективной, т.е. не повторять вычислений». Ниже приводятся два решения этой задачи – студента и преподавателя. Определите, какое решение удовлетворяет всем условиям задачи.

{Решение студента}

read(a);

while a<>0 do

begin p:=1;

for i:=1 to a do p:=p*i;

writeln(p);

read(a)

end;

{Решение преподавателя}

read(a);

p:=1; k:=1;

while a<>0 do

begin for i:=k to a do p:=p*i;

write(p);

k:=a+1;

read(a)

end.



 

10. Установите, какую задачу решает приведённый фрагмент программы. Перепишите его с использованием оператора while:

s:=1; max:=a[1];

for i:=n downto 2 do

if max<a[i]

then begin max:=a[i]; s:=1 end

else if max=a[i] then s:=s+1.

 

11. Установите, что делает фрагмент программы. Перепишите его, используя оператор цикла с постусловием:

s:=0;

readln(a);

while a<>0 do

begin if a mod b=0

then s:=s-a;

read(a)

end.



Задачи:

1. Запишите фрагменты решения следующих задач на Паскале (укажите сходные черты и различия в решениях):

2. 5+6+7+…+(n+5);

3. 1+3+5+…+(2n-1);

4. sin(1)+sin(2)+sin(3)+…+sin(n);

5. сумму натуральных чисел отрезка [a;b];

6. сумму четных чисел отрезка [a;b];

7. 2+22+23+…+2n;

8. ;

9.

10. k×(k+1)×(k+2)×…×2k;

11. (n+m)×(n+2m)×(n+3m)×…×(n+m2);

12. a/(a+1)/(a+2)/(a+3)/…/(a+n).

2. Запишите решения следующих задач на Паскале:

1) (…(x+a)x+a)x+a)x+…+a)x+a;

2) (…(n-p)n-p)n-p)n-…-p)n-p;

3) (…(x+a)9+a)9+…+a)9+a;

4) (…(x+1)x+2)x+3)x+4)x+…+n;

5) (…(y+n)y+(n-1))y+…+2)y+1;

6) cos(1+cos(2+cos(3+…+cos(n)…);

7) sin(n+sin(n-1+…+sin(2+sin(1)…);

8)

9) .

Литература:

1. О.Л. Голицына, И.И. Попов , Основы алгоритмизации и программирования 104-109;

2. В. Фаронов Turbo Pascal, стр 34-38

3. http://www.pascaler.ru/

 

8 Массивы и их описание

План

1. Описание одномерных и двумерных массивов

a. Представление массива в Turbo Pascal

b. Типизированные константы массива

c. Заполнение массива данными (ввод элементов)

d. Вывод массива

e. Обработка массивов

2. Матрица

a. Квадратная матрица

b. Транспонирование матрицы

 



<== предыдущая лекция | следующая лекция ==>
Задачи для самостоятельного решения | Представление массива в Turbo Pascal


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.01 сек.