Урок #3.Генерация
числовых данных.
Простейшие
обработки.
Глава #1 «Что
мы знаем из математики о числах?»
*что нужно знать и что делать*
Давайте вспомним из математики какие числа мы называем
целыми, натуральными и простыми. Ответ: числа вида ..-3 -2 -1 0 1 2 3…целые ,
натуральными числами считаем 1,2,3,4…, а простыми 2,3,5,7,11,13…Но не каждый
вспомнит числа-близнецы, Фибоначчи, Армстронга, а о некоторых слышит впервые.
Часто на олимпиадах задачи даются по темам, например на
числовые данные : вывести «Сумму N первых простых чисел»,
«Определить является ли данное число точным квадратом?», «Определить является
ли данное число суперспростым?», «Представить данное число в двоичной системе
счисления»
Мы же попробуем написать простейшую программу
на поток числовых данных.
«Написать
программу нахождения суммы N – первых натуральных чисел».
Во
входном файле INPUT.TXT через пробел записано целое число N, причем N<=1000.
Вывести в
выходной файл OUTPUT.TXT сумму N – первых натуральных чисел.
Пример:
INPUT.TXT
3
OUTPUT.TXT
6
Приступим к задаче…
Глава #2 «Программирование:
этапы работы»
*с чего начать*
А начинать надо с чистого листочка на котором вы и
начинаете с простой арифметики нашей задачи. Итак, первые три натуральных числа
это 1,2,3, их сумма 1+2+3=6 все верно.
Если я напишу программу то другой тест на 5-первых
натуральных числа должен дать 1+2+3+4+5 = 15.Вот это и есть первая часть
работы, выяснить . что будет получаться при различных тестах, которые ты сам
должен придумать.
Далее нужно познакомиться с операторами цикла и
присвоения.
Цикл – это самый мощный инструмент обработки различных
данных.
В Паскале существуют три вида циклов
·
С
параметром
·
С
предусловием
·
С
постусловием
Рассмотрим структуру оператора с параметром.
Если некой переменной I присвоить начальное значение I:=1 и конечное значение I:=10 то под циклом будем считать
изменение этой переменной от 1 до 10 с шагом 1, то есть количество шагов в
цикле будет десять. Здесь все просто. Но десять это еще и число действий над
объектом помещенным в цикл, как в нашей
задаче накопление в банк.
Таким образом оператор будет выглядеть так:
FOR I:=1 TO 10 DO < действия над объектом>,
если конечное число
цикла выражено переменной N
тогда так:
FOR I:=1 TO N DO < действия над объектом>,
А теперь основное, для чего же нам N раз повторять цикл, а чтобы N раз положить в банк текущее число
– накопить сумму.
Подробнее, пусть N=5:
1+2 =3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
Оператор
присваивания вот что нам нужно: S:=S+число.
Левой части присваивается правая.
Отсюда, вид полного оператор
будет:
FOR I:=1
TO N DO S:=S+число;
Но откуда взять числа, а также из оператора цикла. Нам
нужны натуральные числа , а оператор цикла и изменяется как натуральное число
на 1, поэтому:
FOR I:=1
TO N DO S:=S+I; получаем полный текст программы:
var N: integer ;
S: integer ;
I: integer;
begin
assign(input,’input.txt’);
assign(output,’output.txt’);
reset(input);
rewrite(output);
read (N);
for I:=1 to N do S:=S+I;
write(S);
end.
Практическое задание:
1.На диске А создать файл BANK.PAS и ввести
программу
2.Во входной файл INPUT.TXT записать 3 и проверим работу
программы
*если
постоянно нажимать F6 переключаются окна INPUT.TXT – входного файла, программы SUMMA.PAS и OUTPUT.TXT- выходного файла, который всегда
заново образуется при очередном запуске программы
*к
входному и выходному файлу можно обращаться и через CTRL+ ENTER, предварительно
подведя к ним курсор в модуле работы с файлами
*тестировать
программу удобнее изменив окна для просмотра и последовательно выполняя
Глава #3 «Вопросы для повторения
и ДЗ»
Вопросы для повторения:
1.
Как
записать оператор цикла с параметром?
2.
Как
записать оператор накопления суммы?
3.
Какая
клавиша переключает окна?
4.
Как
создается выходной файл?
5.
Как
тестировать программу несколько раз?
Домашнее
задание:
Написать программу для вычисления «Произведение N – первых натуральных чисел» в
режиме работы с входными и выходными файлами и ответить на вопросы письменно.