Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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, каждый элемент которого выражается по формуле
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).
Встречаются таблицы, в которых при некоторых значениях аргументов значения функции не определяются. В этом случае необходимо исключить прерывание программы и выдать на экран сообщение об отсутствии функции. Вывести таблицу значений функции
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; просмотров: 460; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |