- •Лабораторные работы
- •Содержание
- •Лабораторная работа № 1
- •Структура программы на языке Pascal
- •Процедуры ввода/вывода языка Turbo Pascal
- •Оператор присваивания
- •Примеры решений задач
- •Лабораторная работа № 2 Тема: «Простые числовые типы данных» Тип данных Integer
- •Программы с линейной структурой
- •Примеры решений задач
- •Задачи для самостоятельной работы
- •Тип данных Real
- •Лабораторная работа № 3 Тема: «Условный оператор. Оператор многозначного ветвления»
- •Оператор выбора case
- •Примеры решений задач
- •Задачи для самостоятельной работы
- •Лабораторная работа № 4 Тема: «Оператор выбора»
- •Примеры решений задач.
- •Задачи для самостоятельной работы
- •Лабораторная работа № 5 Тема: «Операторы цикла»
- •Примеры решений задач.
- •Задачи для самостоятельной работы
- •Лабораторная работа № 6 Тема: «Одномерные массивы»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 7 Тема: «Двумерные массивы»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 8 Тема: «Строковый тип данных»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 9 Тема: «Тип данных множество»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 10 Тема: «Тип данных запись»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 11 Тема: «Тип данных файл»
- •Примеры решений задач
- •Список задач
- •Лабораторная работа № 12 Тема: «Функции и процедуры»
- •1) Процедуры:
- •2) Функции:
- •Примеры решений задач.
- •Список задач
Лабораторная работа № 5 Тема: «Операторы цикла»
При реализации многократного повторения некоторых операций линейной конструкцией необходимо снова и снова повторять одни и те же операторы. Для более компактной реализации этих операций во всех языках используются циклические конструкции, суть которых заключается в том, что вместо многократного переписывания одних и тех же строк программы управление в нужном месте передается предыдущим операторам с тем, чтобы они повторялись.
Имеется три вида циклических алгоритмов: цикл с предусловием (цикл ПОКА), цикл с постусловием (цикл ДО), цикл с параметром (For).
Оператор цикла с постусловием REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура оператора:
repeat <тело цикла> until<условие>;
Оператор цикла с предусловием WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждого повтора, тело цикла может не выполняться ни разу. Структура оператора цикла имеет вид:
while <условие> do <тело цикла>;
Оператор цикла FOR организует выполнение одного оператора заранее известное число раз. Существует два варианта оператора.
for <переменная>:=<нач. значение> to <кон. значение> do<оператор>;
for <переменная>:=<нач. значение> downto <кон. значение> do <оператор>;
Блок-схемы циклических конструкций могут быть изображены следующим образом:
Выполнение очередного повтора включает в себя сначала выполнение оператора, а затем присваивание переменной цикла следующего большего значения (в первом случае) или следующего меньшего (во втором варианте). Особенностью арифметического цикла является то, что число повторений операторов цикла должно быть известно заранее.
Примеры решений задач.
1. Вычислить N! (факториал).
Program Faktorial;
Var n, i, f: integer;
Begin
f:=1;
Write('Введите n=');
Readln(n);
For i:=2 to n do
f:=f*i;
Writeln(n,'!=',f);
End.
2. Найти сумму цифр в записи данного натурального числа;
Program SUM;
Var a,b,s,k:Integer;
Begin
Readln(a);
s:=0;
While a<>0 do
begin
b:=b mod 10;
s:=s+b;
a:=trunc(a/10); { a := a div 10 }
end;
Writeln(s);
End.
Задачи для самостоятельной работы
Использовать цикл с параметром
Составьте программу, выводящую на экран квадраты чисел от 10 до 20.
Составьте программу, которая вычисляет сумму чисел от 1 до 100.
Составьте программу, которая вычисляет сумму чисел от 1 до N. Значение N вводится с клавиатуры.
Составьте программу, которая вычисляет произведение чисел от 1 до N. Значение N вводится с клавиатуры.
С клавиатуры вводятся N чисел. Составьте программу, которая определяет количество отрицательных, количество положительных и количество нулей среди введенных чисел. Значение N вводится с клавиатуры.
Дано натуральное число n. Получить все пифагоровы тройки натуральных чисел, каждое из которых не превосходит n, т.е. все такие тройки натуральных чисел a, b, c, что a2 + b2 = c2.
Два натуральных числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Найти все пары дружественных чисел, лежащих в диапазоне от 200 до 300.
Составьте программу, которая печатает таблицу перевода расстояний из дюймов в сантиметры (1 дюйм = 2,5 см) для значений длин от 1 до 20 дюймов.
Составить алгоритмы и программы перевода старинных русских мер длины, торгового и аптекарского веса (счетчик цикла меняется от 1 до 10):
драхм в граммы (1 драхма равна 3,7325 г)
унций в граммы (1 унция равна 29,86 г)
фунтов в килограммы (1 фунт равен 0,40951 кг)
Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.
Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5.
Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7.
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.
Ввести с клавиатуры 10 чисел – положительных и отрицательных. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел.
Даны натуральные числа от 10 до 99. Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.
В ЭВМ вводятся по очереди данные о росте N учащихся класса. Определить средний рост учащихся класса.
Задано натуральное число N. Найти количество натуральных чисел, не превосходящих N и не делящихся ни на одно из чисел 2, 3, 5.Является ли заданное натуральное число степенью двойки.
Найти сумму квадратов чисел от m до n.
Найти сумму квадратов нечётных чисел в интервале, заданном значениями переменных m и n;
Найти сумму квадратов четных чисел в интервале, заданном значениями переменных m и n;
Найти сумму целых положительных чисел, кратных 4 и меньших 100.
Определить k - количество трёхзначных натуральных чисел, сумма цифр которых равна n (1,n,27).
В ЭВМ по очереди поступают результаты соревнований по плаванию, в которых участвуют N спортсменов. Выдавать на печать лучший результат после ввода результата очередного спортсмена.
Начав тренировки, спортсмен в первый день пробежал 5 км. Каждый следующий день он увеличивал дневную норму на 15 % от нормы предыдущего дня. Через сколько дней спортсмен пробежит суммарный путь >= 100 км ?
Начав тренировки, спортсмен в первый день пробежал 20 км. Каждый следующий день он увеличивал дневную норму на 10 % от нормы предыдущего дня. Сколько километров он пробежит за один девятый день ?
Использовать циклы с предусловием и постусловием
В первую неделю вам выдали 5000 рублей с обещанием выплачивать каждую неделю на 500 рублей больше. Подсчитать, какую сумму вы получите на 20 -й неделе.
Составить программу печати возведения в квадрат чисел от 0 до 100 с шагом 5.
Одноклеточная амеба каждые три часа делится на две клетки. Определить, сколько клеток будет через 3, 6, ...,24 часа.
Начав тренировки, спортсмен в первый день пробежал 5 км. Каждый следующий день он увеличивал дневную норму на 12 % от нормы предыдущего дня. Через сколько дней спортсмен пробегать в день более 30 км?
Начав тренировки, спортсмен в первый день пробежал 15 км. Каждый последующий день он увеличивал дневную норму на 20 % от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 -мь дней?
Составить таблицу перевода миль в километры для расстояний от 5 до 75 миль с шагом 5. Одна миля составляет 1,609 км.
Напечатать таблицу значений функции Y= Х3 при изменении Х от 20 до 6 с шагом 2.
В первую неделю вам выдали 1000 рублей с обещанием выплачивать каждую вторую неделю на 30 % больше предыдущей выплаты. Подсчитать, какую сумму вы получите на 9-ой неделе.
В ЭВМ по очереди поступают результаты соревнований по плаванию, в которых участвуют N спортсменов. Выдавать на печать лучший результат после ввода результата очередного спортсмена.
Составить таблицу стоимости порции сыра массой 50, 100, 150, ..., 1000 грамм. Цена одного килограмма - 134 рубля.
Каждая бактерия делится на две в течение одной минуты. В начальный момент времени имеется одна бактерия. Составьте программу, которая подсчитывает количество бактерий на заданное вами целое значение момента времени.
Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на P процентов от имеющейся суммы (P — вещественное число, 0<P < 25). По данному P определить, через сколько месяцев размер вклада превысит 1100 руб., и вывести найденное количество месяцев K (целое число) и итоговый размер вклада S (вещественное число).
Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0<P < 50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).
Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, найти количество и сумму его цифр.
Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.
Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. Если имеются, то вывести TRUE, если нет — вывести FALSE.
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. В какой день впервые суммарный путь превысит 60 км?
Первоначальное напряжение в цепи равно 200 вольт. Известно, что оно меняется через каждую секунду следующим образом: через одну секунду оно уменьшается на М%, а еще через секунду увеличивается на N%, затем снова уменьшается на М%, потом уменьшается на N% и т.д. Составить программу для определения, через сколько секунд напряжение в цепи превысит 220 вольт.
Определить число месяцев, через которое начальная сумма вклада в банк увеличится более чем в три раза. Процентная ставка равна 1,5% в месяц. Программа выводит на экран ежемесячное значение конечной суммы.
Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100 км.
Старинная задача. Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова — 5 рублей, теленок — полтинник (0,5 рубля), при условии, что на 100 рублей надо купить 100 голов скота.
Составить таблицу стоимости порции колбасы весом от 100 до 1000 г с шагом в 10 г (цена 1 кг колбасы определяется по запросу). Вид таблицы приведен в задаче 5.
Напечатать таблицу значений функции у=ln(х) при изменении х от 1 до 10 с шагом 0,2.
Напечатать таблицу значений функции y=x3 при изменении х от 2 до 12 с шагом 0,1. Числа должны выводиться с 2 знаками после десятичной точки.
Составить таблицу стоимости порции сыра весом в 50, 100, 150, .., 1000 г (цена 1 кг сыра определяется по запросу).
