Циклы в Turbo Pascalметодическая разработка по информатике и икт (10 класс) по теме
Циклы в Turbo Pascal
методическая разработка по информатике и икт (10 класс) по теме
В программах, связанных с обработкой данных или вычислениями, часто выполняются циклически повторяющиеся действия.
Цикл представляет собой последовательность операторов, которая выполняется неоднократно. В языке Turbo Pascal различают три вида операторов цикла: цикл с предусловием (while), цикл с постусловием (repeat) и цикл с параметром (for).
- подавляющее большинство задач с циклами можно решить разными способами, используя при этом любой из трех операторов цикла;
- часто решения, использующие разные операторы цикла, оказываются равноценными;
- в некоторых случаях все же предпочтительнее использовать какой-то один из операторов;
- самым универсальным из всех операторов цикла считается while, поэтому в случае затруднений с выбором можно отдать предпочтение ему;
- цикл repeat имеет очень простой и понятный синтаксис, поэтому с него удобно начинать изучение циклов;
- цикл for обеспечивает удобную запись циклов с заранее известным числом повторений;
- при неумелом использовании циклов любого типа возможна ситуация, когда компьютер не сможет нормально закончить цикл. При работе в среде Turbo Pascal для выхода из подобной ситуации используется комбинация клавиш +
. - если это не помогает, есть и крайнее средство – ++ . Одновременное нажатие этих трех клавиш или кнопки Reset, расположенной на системном блоке, позволяет перезагрузить компьютер, при этом данные, относящиеся к работающей программе, будут утеряны.
- процедура continue позволяет прервать выполнение тела любого цикла и передает управление на его заголовок, заставляя цикл немедленно перейти
к следующему выполнению.
Циклы с параметром
Если число требуемых повторений заранее известно, то используется оператор, называемый оператором цикла с параметром или циклом со счетчиком.
Оператор цикла с параметром имеет два варианта записи:
1) вариант с увеличением счетчика
2) вариант с уменьшением счетчика
Счетчик – параметр цикла, простая переменная целого типа; — операторы или оператор. Цикл повторяется до тех пор пока значение параметра лежит в интервале между начальным и конечным значениями. В первом варианте при каждом повторении цикла значение параметра увеличивается на 1, во втором — уменьшается на 1.
При первом обращении к оператору for вначале определяются начальное и конечное значения, и присваивается параметру цикла начальное значение. После этого циклически повторяются следующие действия.
1. Проверяется условие: параметр цикла
2. Если условие выполняется, то оператор продолжает работу (выполняется оператор в теле цикла), если условие не выполняется, то оператор завершает работу и управление в программе передается на оператор, следующий за циклом.
3. Значение параметра изменяется (увеличивается на 1 или уменьшается на 1).
Если в теле цикла располагается более одного оператора, то они заключаются в операторные скобки begin … end;
- оператор For используется для организации циклов с фиксированным, заранее известным числом повторений;
- количество повторений цикла определяется начальным и конечным значениями переменной-счетчика. Оператор For обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла: от начального до конечного;
- переменная счетчик должна быть порядкового типа: чаще integer, реже – char, boolean. Использование вещественного типа недопустимо;
- начальное и конечное значения параметра цикла могут быть константами, переменными, выражениями и должны принадлежать к одному и тому же типу данных. Начальное и конечное значение параметра цикла нельзя изменять во время выполнения цикла;
- параметр цикла For может изменяться (увеличиваться или уменьшаться) каждый раз при выполнении тела цикла только на единицу. Если нужен другой шаг, предпочтительнее использовать циклы с предусловием или с постусловием.
Задача 1. Вывести на экран натуральные числа от 1 до 9 в обратном порядке.
For i:=9 downto 1 do
Вычисление р = n! (n факториал).
program z2;
var p, i, n: integer;
begin
write ('введите целое n = ');
readln (n);
p: = 1;
for i: = 1 to n do
p: = p * i;
write (n, '! = ',p);
readln
end.
Составить программу вычисления значения выражения y=1+1/2+1/3+. +1/20.
Из чисел от 10 до 99 вывести те, сумма цифр которых равна S(0
Дано натуральное число n (1000
Оператор цикла с предусловием
Если число повторений заранее неизвестно, а задано лишь условие его повторения (или окончания), то используются операторы while и repeat. Оператор While часто называют оператором цикла с предусловием. Так как проверка условия выполнения цикла производится в самом начале оператора.
Общий вид: While do
Тело цикла – простой или составной оператор или операторы. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin…end. Ключевые слова While и do означают соответственно "пока" и "выполнять". Когда программа в процессе выполнения впервые достигает оператора while, осуществляется проверка истинности условия. Если условие истинно, то выполняется тело цикла (оператор). После этого происходит возврат к началу фрагмента while do, где проверка условия осуществляется вновь. Цикл будет выполняться до тех пор, пока логическое выражение будет истинным. Как только логическое выражение станет ложным, управление передается следующему за циклом оператору. Если при первом выполнении цикла значение логического оператора будет "ложь", то цикл не станет выполняться, а управление сразу же передается следующему за while оператору.
- число повторений операторов цикла while определяется в ходе работы программы и, как правило неизвестно;
- после слова while записывается условие продолжения выполнения инструкций цикла;
- условие – это выражение логического типа: простое выражение отношения или сложное выражение отношения, которое может принимать одно из двух значений: true или false;
- для успешного завершения цикла while в его теле обязательно должны присутствовать инструкции, оказывающие влияние на условие выпонения инструкций цикла.
Задача 1. Найти сумму 10 произвольных чисел.
Var k, x, s: integer;
writeln(‘Сумма чисел равна’, s);
Вычислить наибольший общий делитель двух натуральных чисел А и В.
program z3;
var a, b: integer;
begin
write ('введите два натуральных числа');
readln (a, b);
while a<>b do
if a>b then a: = a — b
else b: = b — a;
write ('НОД = ', a);
readln;
end.
Составление таблицы значений функции у = sin х отрезке [0;3.14] с шагом 0,1.
program z4;
var х, у: real;
begin
х: = 0;
writeln ('x' : 10,'sinx' : 10);
while x
Приближенное вычисление суммы бесконечно убывающего ряда 1+x/1!+x 2 /2!+x 3 /3!+ .
Циклы с потусловием
Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла. Во-вторых, тем, что критерием прекращения цикла является равенство выражения константе true . За это данный оператор часто называют циклом с постусловием, так как он прекращает выполняться, как только условие, записанное после слова until, выполнится. Оператор цикла repeat состоит из заголовка, тела и условия окончания.
*цикл с постусловием
* конец цикла, если
Общий вид: Repeat
Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. В любом случае этот цикл выполняется хотя бы один раз. Если условие не выполняется, т.е. результатом выражения является False, то цикл активизируется еще раз. Если условие выполнено, то происходит выход из цикла. Использования операторных скобок, в случае, если тело цикла состоит из нескольких операторов, не требуется.
- число повторений операторов цикла repeat определяется в ходе работы программы и, как правило неизвестно;
- инструкции цикла repeat будут выполняться, пока условие, стоящее после until, будет оставаться ложным;
- после слова until записывается условие завершения цикла;
- условие – это выражение логического типа: простое выражение отношения или сложное выражение отношения, которое может принимать одно из двух значений: true или false;
- для успешного завершения цикла repeat в его теле обязательно должны быть инструкции, выполнение которых влияет на условие завершения цикла, иначе цикл будет выполняться бесконечно – программа зациклится. Другими словами, переменная, которая участвует в условии выхода из цикла, обязательно должна изменяться в теле цикла.
Задача 1. Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, то на экран выводится результат суммирования.
If x<>999 then s:=s+x;
Writeln(‘Сумма введенных чисел’, s); End.
Использование цикла repeat для подсчета суммы вводимых чисел до первого отрицательного числа
Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.
Написать программу нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
В теле любого оператора цикла могут находиться другие операторы цикла. При этом цикл, содержащий в себе другой, называют внешним, а цикл, находящийся в теле первого – внутренним (вложенным). Правила организации внешнего и внутреннего циклов такие же, как и для простого цикла.
При программировании вложенных циклов необходимо соблюдать дополнительное условие: все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла.
Даны натуральные числа n и k. Составить программу вычисления выражения l k +2 k +. +n k .
Вычислить сумму 1 1 +2 2 +. +n n .
Написать программу, которая находит и выводит на печать все четырехзначные abcd, числа а, b, с, d — различные цифры, для которых выполняется: ab-cd=a+b+c+d.
Если мы сложим все цифры какого-либо числа, затем все цифры найденной суммы и будем повторять много раз, мы, наконец, получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа 34697 равен 2 (3+4+6+9+7=29; 2+9=11; 1 + 1=2). Составим программу для нахождения цифрового корня натурального числа.
Список используемой литературы
- Г.Г. Рапаков, С.Ю. Ржеуцкая “Turbo Pascal для студентов и школьников“, Санкт-Петербург, «БХВ-Петербург», 2011г.
- А.И. Гусева “ Учимся программировать: Pascal 7.0”, Москва, «Диалог-МИФИ», 2011г.
- С.В. Вольский, П.А. Дмитриев “Turbo Pascal 7.0 для студентов и школьников“, Санкт-Петербург, «Наука и Техника», 2007г.
- Д.М. Ушаков, Т.А. Юркова “Паскаль для школьников”, Москва-Санкт-Петербург, «ПИТЕР», 2008г.
- Е.Р. Алексеев “Турбо Паскаль 7.0”, Москва, NT Press, 2006г.
По теме: методические разработки, презентации и конспекты
Конспект урока с презентацией «Графика на языке программирования Turbo Pascal»
Урок для учащихся 11 класса по теме «Графика на языке программирования ТР». Содержит теоретический материал, практическую работу и презентацию к уроку. Надеюсь, многим учителям информатики пригодится.
Turbo Pascal. Разработка программ, содержащих оператор ветвления
Изучение программирования и языков программирования, таких как Basic, Pascal, C++, Delphi и др. является неотъемлемой частью информатики. С помощью языков программирования можно создавать свои п.
Реализация циклического алгоритма в среде Turbo Pascal. Оператор цикла с параметром
Урок по предметной области “Информатика” для 9-10 класса Данный материал представляет разработку урокапо теме “Реализация циклического алгоритма в среде TurboPascal. Оператор цикла с парам.
Сборник тестов «Структуры данных в языке Turbo Pascal» к разделу «Алгоритмизация и программирование» курса информатика и ИКТ в профильной классах.
Цель использования разработкиПроведение входного, текущих и итоговых контрольных работ в форме тестов по темам:массивы;строковый тип данных;записи;файлы,а также для подготовки к ЕГЭ.
Тест по теме- Изучение языка Turbo Pascal
Приводятся тестовые задания с одним правильным вариантом ответа, эталоны ответов.
Вопросы для актуализации опрных знаний при изучении языка Turbo Pascal
Приведены 20 вопросов для актуализации опорных знаний при изучении языка программирования Turbo Pascal и эталоны ответов.
Сканворд- операторы языка Turbo Pascal
Учащимся предлагается сканворд, в котором необходимо найти как изученные операторы языка программирования Turbo Pascal, так и еще неизвестные, и ответить на дополнительные вопросы. Слова в скан.
Цикл со счетчиком паскаль это
Работа программы будет выглядеть следующим образом:
В этой программе можно произвольно задавать диапазон выводимых символов. Например for n:=1 to 50 . При запуске программы можно посмотреть первые 50 символов.
В Turbo Pascal есть ещё один тип символьных данных, это тип String — строка символов. Строка символов в Pascal может содержать до 255 символов. Фактически, строка это линейный массив из символов. Забегая вперёд (о массивах подробно в следующих разделах), можно сказать, что у каждого символа в строке есть порядковый номер — индекс. По индексу можно обратиться к любому символу в строке. Строковые переменные, так же как и символьные, при вызове должны заключаться в апострофы.
Операции с символами и строками. Рассмотрим все возможные действия, которые можно производить символами и строками.
Строковые переменные объявляются так же, как и любые другие переменные, и имеют тип String. Например:
Var
S1, mystr: string;
Sym1, ch100 : char;
При присваивании переменной определённых значений, значения берутся в апострофы, например:
Sym1:= ‘G’;
Mystr := ‘Hello Word’;
S1:= ‘. ‘;
Символы и строки можно складывать:
S:= Mystr + S1; < в результате строка S будет 'Hello Word. '; >
Можно получить любой символ из строки по индексу символа в строке, например:
Ch := Mystr[7];
В Turbo Pascal есть встроенные процедуры и функции для работы со строками:
Length(s:string):integer; — функция возвращает число символов в строке. Например: ns:= Length(‘Hello’); числовой переменной ns будет присвоено значение 5.
Copy(s:string; index:integer; count:integer):string; — Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index. Например:
s := ‘Turbo Pascal’;
s1 := copy(s, 1, 5);
s2 := copy(s, 7, 6);
Delete(var s:string; index,count:integer); Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index. Например:
s := ‘Turbo Pascal’;
delete(s,1,6);
Insert(source:string; var s:string;index:integer);
Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки. Например:
s := ‘Pascal Version 7’;
insert(‘Turbo ‘,s,1);
Pos(substr,s:string):byte;
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0. Например:
s := ‘Turbo Pascal’;
x1 := pos(‘Pascal’, s);
x2 := pos(‘Basic’, s);
Str(X: арифметическое числовое выражение; var st: string);
Процедура преобразует численное выражение X в его строковое представление и помещает результат в st.
Val(st: string; x: числовая переменная; var code: integer);
Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x — может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.
В заключение этой темы напишем программу подсчёта числа заданных символов в строке:
uses crt;
var
n: integer; <переменная для цикла>
z: integer; <переменная для подсчёта числа символов>
s: string; <вводимая строка>
c: char; <вводимый символ>
cx: char; <символ, который будет браться из строки>
begin
clrscr;
z:= 0;
write(‘Wwedi stroku: ‘);readln(s); <вводим строку для исследования>
write(‘Wwedi symwol: ‘); readln(c); <вводим символ для поиска в строке>
for n:= 1 to length(s) do
begin
cx:= s[n]; <<берём из строки очередной символ с индексом n>
if cx = c then inc(z); <если введённый и взятый символ совпадают, то увеличиваем счётчик z на 1>
end;
writeln(‘Chislo simwolow ‘,c, ‘=’, z); <Выводим результат на экран>
readln;
end.
Разработка урока по информатике «Циклы в Паскале»
Способствовать развитию информационной культуры учащихся.
Ход урока.
План урока:
Изложение теоретического материала.
Практическое решение задач на компьютерах.
Здравствуйте, дорогие ребята! Здравствуйте, уважаемые гости!
На предыдущих занятиях мы учились писать программы с линейной конструкцией, с использованием условного оператора и с оператором выбора. Сегодня у нас новая тема «Циклические конструкции языка программирования Turbo Pascal».
Изложение теоретического материала
Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз.
Для организации циклов в Паскале используются следующие операторы:
оператор цикла с параметром;
For переменная:= выражение1 to выражение2 do оператор;
For переменная:= выражение1 downto выражение2 do оператор;
оператор цикла с постусловием;
repeat оператор until логическое выражение (условие) ;
оператор цикла с преусловием;
while логическое выражение (условие) do оператор.
Первая из конструкций, позволяющих реализовать повторение в Паскаль-программах, называется перечисляемым циклом, циклом со счетчиком или циклом с заданным числом повторений. Сегодня мы рассмотрим именно этот оператор.
В вышеприведенной записи цикла FOR …TO…DO переменная (счетчик цикла, переменная-счетчик) изменяется, увеличиваясь до конечного значения. Переменная может изменяться в противоположном направлении – убывать. Для этого необходимо заменить зарезервированное слово TO на DOWNTO. Таким образом, форма циклической конструкции “цикл со счетчиком” целиком определяет режим повторения.
Рассмотрим применение цикла FOR …TO…DO на примере.
Допустим, нам необходимо написать программу разгрузки строителем 25 мешков цемента из грузовика. Отдадим рабочему следующий приказ: «Приступить к выгрузке первого мешка цемента (FOR а:= 1), а затем продолжать разгрузку мешков до тех пор, пока на земле не окажутся все 25 мешков (TO 25) мешков». Если этот приказ попытаться оформить как фрагмент Паскаль-программы, то получиться следующий текст:
FOR а:= 1 TO 25 DO
Подойти к грузовику;
Подав грузчику команду FOR а:= 1 TO 25 DO, мы указали, что, перенося мешки с первого по двадцать пятый, он должен их мысленно пересчитывать, чтобы не «перетрудиться» и не выгрузить больше требуемого количества. Если же Вы хотите окончательно вывести грузчика из себя, можете попросить его погрузить все мешки обратно в грузовик:
FOR а:= 25 DOWNTO 1 DO
Погрузить мешок на грузовик;
Следует запомнить, что переменная, используемая в цикле FOR всегда должна быть целого типа. Использование переменной типа REAL не допускается.
Вот и все! Мы заставили грузчика работать, не разгибая спины, а в результате все вернулось на свои места.
Рассмотрим следующий пример. Необходимо просуммировать числа от 1 до 50 (включительно) и вывести на экран полученный результат.
Решим данную задачу с использованием цикла с заданным числом повторений. На следующих занятиях мы рассмотрим решение этой задачи с помощью циклов REPEAT…UNTIL и WHILE…DO.
Pascal Алгоритмы циклической структуры, программирование на языке Pascal 9 класс. — презентация
Презентация на тему: » Pascal Алгоритмы циклической структуры, программирование на языке Pascal 9 класс.» — Транскрипт:
1 Pascal Алгоритмы циклической структуры, программирование на языке Pascal 9 класс
2 Цикл (повтор) – это… такая форма организации действий, при которой одна и та же последовательность действий повторяется несколько раз ( или ни разу) до тех пор, пока выполняется некоторое условие.
3 Циклы бывают: Циклы с условием (ПОКА и ДО), в которых тело цикла выполняется до тех пор, пока выполняется условие. Циклы со счетчиком (ДЛЯ), в которых тело цикла выполняется определенное количество раз;
4 Pascal Цикл с предусловием (пока). Условие Да Нет Серия команд
5 Формат записи WHILE DO ; Блок-схема алгоритма операторы да
6 Цикл с постусловием ( до) Repeat Until ; тело цикла условие да-нет
7 Цикл со счетчиком (с параметром) счетчик Тело цикла
8 8 Увеличение переменной на 1: for := downto do begin end; for := downto do begin end; Уменьшение переменной на 1: переменная начальное значение конечное значение тело цикла for := to do begin end; for := to do begin end; переменная начальное значение конечное значение тело цикла
9 1. Переменная цикла, нач. значение и кон. значение должны быть одного и того же типа (integer). 2. Конечное и начальное значения определяются до начала работы цикла и не должны изменяться во время его выполнения. 3. Значение переменной цикла изменяется автоматически и его нельзя изменять внутри цикла.
10 Написать программу вычисления N !
11 I=1, N, 1 ввод N вывод S S:=0 S:=S+I начало конец 2. Вычислить сумму натуральных чисел от 1 до N program f2; var i, S, N : integer; begin readln(N); S:=0; for i:=1 to N do S:=S+I; writeln (сумма =, S); end.
12 3. Вычислить сумму 3-хзначных чисел кратных 5 program f3; var i, S : integer; begin S:=0; for i:=100 to 999 do if i mod 5 =0 then S:=S+I; writeln (сумма трехзначных, кратных 5, S); end.
13 Условия Нечетные числа i mod 2 <>0 или i mod 2 =1 Числа кратные 5 i mod 5 =0 Четные числа i mod 2 =0 Числа кратные 5 и 13 (i mod 5 =0) and (i mod 13 =0)
14 4. Найти среднее арифметическое целых чисел из интервала (-6;6] program f4; var i, S, K, SA : integer; begin S:=0; K:=0; for i:=-5 to 6 do begin S := S + i; K := K + 1; end; SA := S / K; writeln (среднее арифметическое =, SА); end.
15 5. Вывести на экран таблицу умножения на 3 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30 Результат должен выглядеть так: Повторяется запись: 3*i=x, где значение x:=3*I Выводить будем: 3 *, i, =, x
16 5. Продолжение program f5; var i, x: integer; begin for i:=1 to 10 do begin x := 3 * i; writeln (3*, i,=, x); end; end.
17 6. Составить таблицу 11 значений функции у=12 х²-23 х+4 на отрезке [-10,10] с шагом 2 for i:=1 to 11 do begin x := -12+2*I; y := 12*x*x-23*х+4; writeln (x,y); end; i x
18 7. Вычислить сумму 160 членов арифметической прогрессии а 1=-50 d=0.3 program f7; var a1, S, a :real; i : integer; begin S:=0; a1:=-50; d:=0.3; for i:=1 to 160 do begin a:=a1+d*(i-1) S := S + a; end; writeln (сумма =, S); end.
19 8. Вычислить сумму 160 членов геометрической прогрессии b1=-5 q=2 program f8; var b1, S, b, i : integer; begin S:=0; b1:=2; b:=b1; for i:=1 to 160 do begin b:=b*q; S := S + b; end; writeln (сумма =, S); end.
20 9. Найти произведение натуральных чисел не более 67 program f9; var i, P : integer; begin P:=1; for i:=1 to 67 do P:=P*i; writeln (произведение=, Р); end.
21 10. Вычислить произведение и количество 5- значных чисел кратных 29 или 3 program f10; var i, P, K : integer; begin P:=1; K:=0; for i:=10000 to do if (i mod 29 =0) or (i mod 3) then begin P:=P*i; K:=K+1; end; writeln (произведение=, Р); writeln (количество=, K); end.