Программирование на языке Turbo Pascal
Материалы к урокам
ТЕМА №5: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ TURBO-PASCAL. ОРГАНИЗАЦИЯ ЦИКЛОВ. ОПЕРАТОРЫ ЦИКЛОВ. СОСТАВЛЕНИЕ ПРОГРАММ С ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ЦИКЛА.
ПРОГРАММНО - ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. Turbo-Pascal 5.
ЦЕЛИ И ЗАДАЧИ: Знакомство с операторами цикла языка Turbo-Pascal. Выработка навыков работы в Turbo-Pascal. Решение практических задач с использованием операторов цикла.
ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:
Учащиеся должны знать:
-
Что такое цикл;
-
Три разновидности операторов цикла;
-
В чем отличия операторов цикла с предварительным и последующим условием;
-
Какой тип должна имеет переменная цикла с параметром;
-
Когда в операторах цикла и ветвления используются операторные скобки;
-
Принцип организации движения графических фигур.
Учащиеся должны уметь:
-
Использовать циклы при составлении программ;
-
Правильно составлять и использовать условия в циклах WHILE или REPEAT;
-
Составлять программы с использование операторов цикла.
ПЛАН-СОДЕРЖАНИЕ УРОКА
Цикл
Цикл – команда исполнителю повторить многократно указанную последовательность команд алгоритмического языка или, другими словами, многократно повторяющаяся часть программы.
Существует три разновидности оператора цикла.
-
Оператор цикла с параметром.
Используется, когда известно, сколько раз выполняется циклическая часть программы.
for <параметр цикла>:=<начало> to/downto <конец> do <оператор>;
для до делать
параметр цикла - числовая переменная типа integer
начало, конец - арифметическое выражение
to - используется когда начало меньше конца
downto - используется когда начало больше конца
оператор - тело цикла, любой оператор, в том числе и составной
Принцип работы:
-
Параметру присваивается значение начало
-
Выполняется оператор - тело цикла.
-
Затем параметр сравнивается с концом.
-
Если параметр больше/меньше конца, то начинает работать следующий оператор за оператором цикла, в противном случае к параметру прибавляется/отнимается единица.
-
Снова выполняется оператор.
-
Так продолжается пока параметр не станет больше/меньше конца.
-
Цикл с предварительным условием
while <условие> do <оператор>;
пока делать
условие - логическое выражение
оператор - любой оператор, в том числе и составной.
Принцип работы:
-
Проверяется истинность условия
-
Если условие истинно выполняется оператор
-
Цикл работает, пока условие не станет ложным.
-
Цикл с последующим условием
repeat <операторы> until <условие>
повторять до тех пор пока
условие - логическое выражение
операторы - любое количество любых операторов, в том числе и составной.
Принцип работы:
-
Выполняются все операторы между repeat и until
-
Проверяется ложность условия
-
Цикл работает, пока условие не станет истинным.
-
Особенности и отличия операторов цикла
-
Вход в цикл возможен только через его начало
-
Переменные оператора должны быть определены до входа в цикл
-
Необходимо предусмотреть выход из цикла, чтобы он не повторялся бесконечно.
-
Оператор while repeat может ни разу не выполнится
-
оператор repeat обязательно выполниться хотя бы раз
-
Примеры программ
Проверить, является ли целое число простым.
|
Uses crt;
Var n{введенное число},i:integer;
Begin
Readln(n);
For i:=2 to n-1 do
If n mod i =0 then begin writeln(n,’не простое’);readkey; halt;end;
writeln (n, ‘простое’);
readkey;
end.
|
Написать программу, которая выводит на экран табл. умножения, например на 7.
|
Uses crt;
Var m,n,p:integer;
Begin
For i:=1 to 10 do
Writeln(7,’*’,I:2,’=’,7*I:2);
Readkey; end.
|
Написать программу, которая выводит табличные значения функции у=x+2. Диапазон изменения аргумента от – 4 до 4, приращение аргумента - 0.5
|
uses crt;
var x,y:real;
begin;
clrscr;
writeln('y':20,' : ','x':5);
writeln(' --------------');
x:=-4;
repeat
y:=abs(x)+2;
writeln(y:20:1,' : ',x:5:1);
x:=x+0.5;
until x>4;
readkey;
end.
|
Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 0.
|
Uses crt;
Var a{очередное число}, m{макс.число}:integer;
Begin M:=0;
Repeat
Writeln(‘введи число’);Readln(a);
If a>m then m:=a;
Until a=0;
Writeln(‘max=’,m);
Readkey; end.
|
Имеются или не имеются среди чисел cos(i3)sin(in), i=1,…,n, числа меньше 0,0001. Если имеются, то выводить «есть», если нет – «нет»
|
uses crt;
label 1;
var i,n:integer;
begin clrscr;
writeln ('Введите n'); readln (n);
for i:=1 to n do
if cos(i*i*i)*sin(i*n)<0.0001 then begin
writeln ('есть');goto 1; end;
writeln ('нет');
1:readkey;end.
|
Написать программу, которая позволяет найти наибольший общий делитель двух целых чисел
|
program nod;
uses crt;
var n1,n2,nod: integer;
begin clrscr;
writeln ('Введите два целых числа');
readln (n1,n2);
while n1<>n2 do
if n1>n2 then n1:=n1-n2 else n2:=n2-n1;
nod:=n1;
writeln 'Наибольший общий делитель -',nod);
readkey;end.
|
Написать программу, которая позволяет найти наименьшее общее кратное двух целых чисел
|
program nok1;
uses crt;
var nok,n1,n2:byte;i:word;
begin
clrscr;
writeln('введите два числа'); readln(n1,n2);
nok:=1;
for i:=n1*n2 downto 2 do
if (n1 mod i=0) and (n2 mod i=0) then nok:=i;
write('NOK -',nok);
readkey;end.
|
-
По тексту готовой программы составить условие задачи:
-
program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 15 do
begin
a:=trunc((random(7))*5)-10;
write(a:4);
end;
readln;
end.
| -
program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for j:=1 to 10 do
begin
a:=trunc((random(9))*5)-20;
write(a:4);
end;
readln;
end.
| -
program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 15 do
begin
a:=trunc((random(11))*5)-20;
write(a:4);
end;
readln;
end._
| -
program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 4 do
begin
for j:=1 to 5 do
begin
a:=trunc((random(7))*5)-10;
write(a:4);
end;
writeln;
end;
readln;
end._
| -
program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr; randomize;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
a:=trunc((random(9))*5)-20; write(a:4);
end;
writeln;
end;
readln; end.
|
-
Ответить на вопросы
-
Сколько раз будут выполнены инструкции между Begin и End?
For i:=j to j+1 do
Begin
…
end;
-
Чему будет равен x после выполнения инструкций?
X:=0;
For i:= -5 to 0 do
N:=i*i;
X:=X+N;
-
Что будет выведено на экран в результате выполнения инструкций?
N:=5;
X:=0;
For i:=1 to N do X:=i;
Writeln(X);
-
Сколько звездочек будет выведено на экран в результате выполнения инструкций?
For i:=1 to 5 do
For j:=1 to 5 write (‘*’);
Достарыңызбен бөлісу: |