- •Лабораторная работа №1 Тема работы: Использование алгоритмов для решения задач.
- •Лабораторная работа №2 Тема работы: Определение типов данных.
- •Лабораторная работа №3
- •Задания.
- •Контрольные вопросы:
- •Лабораторная № 4
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Лабораторная работа №8 Тема работы: Подпрограммы. Процедуры.
- •Лабораторная работа №9 Тема работы: Подпрограммы. Функции.
- •Лабораторная работа №10
- •1.Что такое запись.
Контрольные вопросы:
Опишите оператор ветвления и правила его использования.
Опишите используемые в вашей программе операторы ввода и вывода информации.
Лабораторная работа №6
Тема работы: Создание программ, содержащих оператор цикла.
Цель работы: изучение и использование операторов цикла в программировании.
Задание:
Используя оператор for реализовать программу на паскале.
Ответить на контрольные вопросы.
Варианты:
запрашивает с клавиатуры два произвольных числа X и Y. Если X больше Y, то вычисляет и выводит на экран сумму всех целых чисел от 1 до X, иначе вычисляет и выводит на экран произведение всех целых чисел от X до Y;
запрашивает произвольное число N, вычисляет произведение всех целых чисел от 1 до N. Если полученное произведение больше 50, то выводит на экран ее значение, иначе выводит на экран сообщение «Произведение меньше 50»;
запрашивает с клавиатуры два произвольных числа X и Y. Если X больше Y, то вычисляет и выводит на экран произведение всех целых чисел от 1 до X, иначе вычисляет и выводит на экран сумму всех целых чисел от 1 до Y;
запрашивает с клавиатуры два произвольных числа X и Y, вычисляет их разность. Если разность больше 10, то вычисляет и выводит на экран произведение всех целых чисел от Y до X, иначе выводит на экран значение разности;
Теоретический материал.
1. Цикл с предусловием. Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки. В общем виде цикл реализуется записью: while <условие> do <действие>; Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки: while <условие> do begin <оператор 1>; <оператор 2>; ... <оператор n>; end;
Пример. Найти все делители целого положительного числа (кроме 1 и самого числа).
program EXAMPLE; var X: Integer; Half: Integer; Divider: Integer; i : Integer; begin repeat Write('Введите число больше нуля: '); ReadLn(X); if X <= 0 then WriteLn('Неправильный ввод') until X > 0; Half := X div 2; Divider := 2; I := 0; while Divider <= Half do begin if X mod Divider = 0 then begin Inc(i); {увеличение счетчика на единицу} WriteLn(i, ' -й делитель равен: ', Divider) end ; Inc(Divider) {увеличение делителя на единицу} end; if i = 0 then WriteLn('Делителей нет'); WriteLn('Конец решения') End.
2. Цикл с постусловием. Для реализации цикла используется составной оператор, состоящий из операторов repeat и until. В общем виде цикл записывается так: repeat <действие>; until <условие>; Пример: задано целое число. Вывести на печать все цифры введенного числа. 1 способ:
|
var a,b: integer; Begin read(a); repeat b:=a mod 10; writeln(b); a:=a div 10; until a=0; End. |
2 способ:
|
var a,b: integer; Begin read(a); while a<>0 do begin b:=a mod 10; write(b); a:=a div 10; end; End. |
3. Цикл с параметром. Для реализации в языке Pascal используется составной оператор, состоящий из операторовfor, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов. Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to; если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так: for I:=I0 to In do begin <оператор 1>; <оператор 2>; ... <оператор n>; end;
Пример: Вывести на экран буквы от Z до A.
program EXAMPLE; var i: Char; begin for i : = 'Z' downto 'A' do Write(’ ’,i); end.
Пример. Вычислить 101 значение sin x с заданным шагом и вывести первое отрицательное значение синуса.
program EXAMPLE; label l; var Si: array[0..100] of Real; {массив вещественных чисел} Step: Real; X: Real; i: Integer; begin Write('Введите шаг вычисления: '); ReadLn(Step); X := 0; {начальный аргумент} for i := 0 to 100 do begin Si[I]:=Sin(X); X := X + Step end; for i :=0 to 100 do if Si[I] < 0 then begin WriteLn('Первое отрицательное значение синуса: ', Si[I], ' Номер элемента: ', i); goto 1; end; WriteLn('Нет отрицательного значения'); 1: end.