Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Цикл с заданным параметром (для)Содержание книги
Поиск на нашем сайте
Применяется, если известно сколько раз требуется выполнить тело цикла. FOR <параметр цикла>:= <выражение1> TO <выражение2> DO <оператор> [ DOWNTO ] for - (фо) - для; to - (ту) - до; { шаг=1 }; downto - (даунту) - вниз до; { шаг=-1 }; do - (ду) - выполнить; параметр цикла - переменная любого скалярного типа, кроме вещественного (управляющая переменная); выражение1 - скалярное выражение - начальное значение параметра цикла; выражение2 - скалярное выражение - конечное значение параметра цикла; оператор - тело цикла; Напечатать числа от 1 до 20. Program Chisla; Uses crt; var i:integer; { управляющая (параметр) цикла } Begin clrscr; for i:=1 to 20 do write(i,' '); { 1 -начальное значение параметра } End. { 20 -конечное значение параметра } { write(i,' ') -тело цикла } После каждого выполнения тела цикла параметр i увеличивается на 1.
Напечатать числа от 20 до 1. Program Chisla; Uses crt; var i:integer; Begin clrscr; for i:=20 downto 1 do write(i,' ') End. После каждого выполнения тела цикла параметр i увеличивается на -1.
Найти произведение чисел делящихся на 2 от 10 до 20. Program Mult; Uses crt; var x:integer; P:real; Begin clrscr; p:=1; { начальное значение произведения } for x:=10 to 20 do if x mod 2=0 then p:=p*x; write('Произведение чисел, делящихся на 2 от 10 до 40 равно P=',p) End. З А Д А Н И Я: 1. Вычислить сумму чисел из промежутка [1;1000]. 2. Вывести на экран 56 символов &. 3. Получить на экране значения функции Y=SIN X, где x берется из промежутка [25;45] и измеряется в градусах. 4. Вывести на экран все числа, делящиеся на 13, от 1 до 100. 5. Вывести на экран все числа от 500 до 300. 6. Найти значение дроби: в числителе - сумма чисел от 1 до 100 делящихся на 7, а в знаменателе - сумма чисел от 100 до 500, делящихся на 17.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 14 СУММА. ПРОИЗВЕДЕНИЕ. ТАБУЛИРОВАНИЕ.
Рассмотрим суммирование числового ряда, если элемент ряда является алгебраическим выражением с помощью циклов ДЛЯ, ПОКА, ДО:
Найти сумму ряда для i от 1 до 15, каждый элемент которого выражается по формуле , то есть найти сумму: 6+9+14+...
Program Summa; Uses crt; Program Summa; Uses crt; var s,i,n: integer; var s,i,n,h: integer; Begin Begin clrscr; clrscr; s:=0; n:=15; s:=0; i:=1; n:=15; h:=1; FOR i:=1 TO n DO s:=s+(i*i+5); WHILE i<=n DO write('Сумма числового ряда S=',s); begin End. s:=s+(i*i+5); i:=i+h; Program Summa; Uses crt; end; var s,i,n,h: integer; write('Сумма ряда S=',s); Begin End. clrscr; s:=0; i:=1; n:=15; h:=1; REPEAT s:=s+(i*i+5);
i:=i+h; UNTIL i>n; write('Сумма числового ряда S=',s); End. Найти произведение чисел ряда, каждый элемент которого определяется по формуле (i+1)/i и i изменяется от 1 до 20 с шагом 0.2, т.е. найти произведение чисел: P=2*1.8333*1.714*1.625*... Program Mult; Uses crt; var i,p,n,h: real; Begin clrscr; p:=1; i:=1; n:=20; h:=0.2; while i<=n do begin p:=p*(i+1)/I; i:=i+h; end; write('Произведение ряда чисел P=',p); End. З А Д А Н И Я: 1. Найти сумму чисел ряда, каждый элемент которого определяется по формуле (i+5)/i и i изменяется от 1 до 20 с шагом 0.4. 2. Получить таблицу для построения графика функции на отрезке [7;15] с шагом 0.4.
3. Найти сумму ряда чисел, каждый элемент которого определяется по формуле (i+5)/(i*i) и i=1,2,3,4,.... Суммировать до элемента равного 6E-3.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 15 ТАБУЛИРОВАНИЕ (продолжение)
Для получения качественного вывода таблицы применяется указание ШИРИНЫ ПОЛЯ ВЫВОДА, которая пишется после переменной через двоеточие. Например, а:5 или в:6. Для числа <а> выделяется поле из пяти символов. Но следует иметь ввиду, что целые и вещественные числа при таком выводе в таблице будут расположены нестандартно.
Для получения более качественного вывода таблицы применяют GOTOXY(C,R). C - номер символа в строке, изменяется от 1 до 79, { Column } R - номер строки, изменяется от 1 до 24. { Row } При выводе таблицы значение C не изменяется, а значение R должно, после каждой выведенной строки, увеличиваться на 1.
Рассмотрим программу решения задания #2 практического занятия #14. Program Tab; Uses crt; var x,h,n: real; r:byte; Begin clrscr; x:=7; h:=0.4; n:=15; r:=1; { r - номер строки } Repeat gotoxy(1,r); write('X=',x:2,' Y=',(x*x+5*x+4)/(x-6)); x:=x+h; r:=r+1; ПРИМЕЧАНИЯ: 1. Выравнивание разрядов until x>n; производится if-then-else End. 2. Если строк в таблице больше, чем строк на экране, то применяется поэкранный вывод с очисткой экрана (см. WHEREY занятие № 17).
Встречаются таблицы, в которых при некоторых значениях аргументов значения функции не определяются. В этом случае необходимо исключить прерывание программы и выдать на экран сообщение об отсутствии функции. Вывести таблицу значений функции на интервале 1,2..15.
Program Tab; Uses crt; var x, n: integer; Begin clrscr; n:=15; for x:=1 to n do if x=5 then writeln('X=',x:2,' Y-не определяется') else writeln('X=',x:2,' Y=',1/(x-5)); End.
З А Д А Н И Я: 1. Получить таблицу для построения графика функции y=sin х, используя
указание ширины поля вывода. 2. Получить эту же таблицу с использованием gotoxy(c,r); 3. Вывести таблицу в центральной части экрана.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 16
ТАБЛИЦА П И Ф А Г О Р А
Если телом цикла является циклическая конструкция, то такие циклы называют ВЛОЖЕННЫМИ.
Program Pifagor; Uses crt; var i,j: integer; Begin clrscr; gotoxy(20,1);writeln('Таблица Пифагора'); FOR I:=1 TO 9 DO BEGIN FOR J:=1 TO 9 DO BEGIN gotoxy(i*4,j*2); write(i*j:4); END; WRITELN; END;
for i:=1 to 41 do Begin gotoxy(i,3);write('-'); if i<=19 then begin gotoxy(9,i); write('!'); end; end; gotoxy(5,22); readkey; End.
З А Д А Н И Я:
1. Набрать программу и получить на экране таблицу. 2. Получить максимально возможную квадратную таблицу. 3. Получить максимально возможную прямоугольную таблицу.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 17 П Р О Ц Е Д У Р Ы Программу, состоящую только из операторов, называют МОНОЛИТНОЙ. Программу, содержащую процедуры и функции называют МОДУЛЬНОЙ. ПРОЦЕДУРА - часть программы, имеющая имя и предназначенная для решения определенной задачи. Каждая процедура определяется только однажды, но может использоваться многократно. Процедуры определяются в разделе описаний вслед за разделом переменных. PROCEDURE Name; prоcedure - служебное слово; BEGIN Name - идентификатор отражающий смысл данной задачи; ИНСТРУКЦИЯ Описание процедуры само по себе никакого действия не END; вызывает. Чтобы исполнить процедуру, необходимо в нужном месте программы поместить обращение к ней, указав Name;.
Например: Напечатать сорок любых символов. В программе используется функция WhereX – она определяет позицию курсора в строке (принимает значения от 1 до 80, изменяется автоматически при выводе информации на экран). С помощью этой функции можно проверить, где находится курсор. Аналогичная функция WhereY – определяет строку, в которой в данный момент находится курсор (принимает значения от 1 до 25). Условие (wherex<40) означает, что при выводе на экран еще не достигнута 40 позиция в текущей строке.
Program Stroka; Uses crt; { Stroka - имя программы }
procedure Str_Simw; { Str_Simw - имя процедуры } Begin while wherex<40 do write('$'); { - тело процедуры } Writeln end; Begin clrscr; Str_Simw; Str_Simw; { - вызов процедуры (два раза)} Readkey; End.
З А Д А Н И Я:
1. Набрать и исполнить пример.
2. Взять любую программу суммирования числового ряда и часть программы описать с помощью процедуры.
3. Применить процедуру Str_Simw для подчеркивания.
Процедуры позволяют избежать повторения фрагментов программ и таким образом сократить размеры программы. Процедуры позволяют разбить программу на законченные блоки.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 18
П Р О Ц Е Д У Р Ы (продолжение)
Переменные, описанные VAR после слова PROGRAM, называют ГЛОБАЛЬНЫМИ. Глобальные переменные передаются в любую часть программы, в том числе и в процедуры.
Program Stroka; Uses crt; var i: integer; { i - глобальная переменная } procedure St_Sim; Begin for i:=1 to 40 do write('$'); writeln; end;
Begin clrscr; St_Sim; St_Sim; End.
Переменные, описанные в процедуре, называют ЛОКАЛЬНЫМИ,так как они используются только в данной процедуре. Доступа к ним из программы нет.
Program Stroka; Uses crt;
procedure St_Sim; var i: integer; {i - локальная переменная} Begin for i:=1 to 40 do write('-'); end; Begin clrscr; St_Sim; Readkey; End. Нежелательно, чтобы глобальные и локальные переменные совпадали.
З А Д А Н И Я: 1. Набрать и исполнить данные программы. 2. Решить задачу: Найти сумму чисел ряда 1,2,3,...,60 с использованием процедуры нахождения суммы и процедуры подчеркивания результата. В обеих процедурах использовать локальные переменные. Количество символов в строке задать глобальной переменной. 3. С помощью процедур получить вертикальную и горизонтальную линии. Линия проводится многократной печатью символа. Заключить слово в рамку из полученных линий. ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 19
П Р О Ц Е Д У Р Ы (продолжение) Часто процедура содержит список параметров. procedure имя (СПИСОК ПАРАМЕТРОВ); ... Список параметров - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов. Параметры, перечисляемые в списке, называют ФОРМАЛЬНЫМИ. При обращении к процедуре, имеющей список параметров, в скобках указываются конкретные значения (выражения) и имена, подставляемые на место формальных параметров процедуры при ее выполнении. При вызове процедуры формальные параметры, указанные в ее заголовке, заменяются значениями в порядке их следования. Количество и тип фактических и формальных параметров должно совпадать.
Вывести на экран строку содержащую задаваемое с клавиатуры число символов. Program Stroka; Uses crt; var m: integer; {m – глобальная переменная} procedure Str_Sim(n: integer; c: char); { n, c - параметры-значения } var i:integer; { i - локальная переменная } Begin for i:=1 to n do write(c); { конструкция печати символов } writeln; end; Begin clrscr; Str_Sim(64,'*'); { вызов процедуры с указанием числа звездочек } writeln; writeln; write('Сколько символов напечатать?:'); readln(m); Str_Sim(m,'='); { вызов процедуры с указанием числа знаков '='} End. Параметры-значения нельзя использовать для передачи результатов из процедуры в основную программу! Если возникла такая необходимость, то применяют формальные параметры-переменные,перед которыми в списке формальных параметров стоит var. Program Pr1; Uses crt; Program Pr2; Uses crt; var x: integer; var x: integer; procedure Izm(y: integer); procedure Izm(var y: integer); Begin begin y:=1 y:=1 end; end; Begin Y не передает ре- Begin Все изменения формальных x:=0; зультат из проце- x:=0; параметров относятся и Izm(x); дуры в основную Izm(x); к фактическим. write(x) программу. write(x) End. End. Результат: x=0. Результат: x=1.
З А Д А Н И Я: 1. Набрать и исполнить приведенные примеры. 2. Найти сумму чисел ряда 1,2,3,4,... от числа n до числа m. Суммирование оформить процедурой с параметрами. Значения n и m программа должна запрашивать.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 20 Ф У Н К Ц И И ФУНКЦИЯ - это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваиваемое имени этой функции. Функция - частный случай процедур.
ОТЛИЧИЯ от процедур: 1. В описании указывается тип результата функции. 2. Результат выполнения функции - ОДНО значение. 3. Имени функции обязательно присваивается результат. 4. Результат передается в программу как значение имени этой функции. 5. Функция записывается в выражениях, а не отдельной командой как процедура.
Описание функции аналогично описанию процедуры:
FUNCTION имя (список формальных параметров): тип; [var локальные переменные: тип;] BEGIN Блок функции END; Допускается описание функции без параметров: FUNCTION имя: тип; ... Найти сумму чисел ряда 1,2,3,...,используя функцию.
Program Summa; uses crt; var n:integer; { n -глобальная переменная }
function Sum(m: integer): integer; { m -параметр-значение функции } var i,s: integer; { i,s - локальные переменные } Begin s:=0; for i:=1 to m do s:=s+i; Sum:=s {- присваивание имени функции значения } end;
Begin clrscr; write('До какого числа суммировать?:'); readln(n); write('Сумма чисел ряда S=',Sum(n)) { -вызов функции Sum с парам.} readkey; End.
З А Д А Н И Я:
1. Набрать и исполнить программу. 2. Изменить программу так, чтобы была найдена сумма чисел от m до числа n, вводимых с клавиатуры.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 21
Ф У Н К Ц И И (продолжение)
Составить программу вычисления степени числа X с целым показателем n, используя функцию без параметров.
Program Step; uses crt; var n:integer; x,y:real; function St:real; var i: integer; Begin y:=1; for i:=1 to n do y:=y*x; St:=y end;
Begin clrscr; write('Введите число:'); readln(x); write('Введите степень:'); readln(n); if n<0 then begin n:=-n; x:=1/x end;
|
||||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 358; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.171.71 (0.01 с.) |