- •Язык Паскаль
- •Тема: Типы данных. Операторы ввода-вывода данных.
- •Теория.
- •Выполните следующие задания:
- •4. Контрольные вопросы.
- •Тема: Линейные программы.
- •Теория.
- •Измените программу так, чтобы на экран выводилось:
- •Контрольные вопросы:
- •Тема: Оператор условия.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1.Теория.
- •3. Внесите в программу предложенные изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы:
- •Тема: Оператор выбора.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •Блок – схема
- •3. Внесите в программу предложенные изменения.
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Арифметический цикл.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •3. Внесите в программу предложенные изменения:
- •4. Выполните задание.
- •5. Контрольные вопросы.
- •Тема: Цикл с предусловием.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •Теория.
- •Блок схема цикла с предусловием.
- •3. Подумайте над вопросами и внесите предложенные изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Цикл с постусловием.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •Теория.
- •Блок схема цикла с постусловием.
- •3. Подумайте над вопросами и внесите предложенные изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Вложенные циклы.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •3. Внесите в программу следующие изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Одномерные массивы.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •3. Внесите в программу предложенные изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Двумерные массивы.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •Внесите в программу предложенные изменения:
- •4. Задание для самостоятельного выполнения.
- •5. Контрольные вопросы.
- •Тема: Строки. Операции над строками. Функции для работы со строковыми величинами.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •Практическая часть.
- •Контрольные вопросы.
- •Тема: Строки. Функции для работы со строковыми величинами.
- •Повторить теорию.
- •Ответить на контрольные вопросы.
- •1. Теория.
- •2. Практическая часть.
- •3. Контрольные вопросы.
- •Тема: “Использование массивов при решении задач на преобразование нечисловой информации. Разделение текста на слова”.
- •3. Ответить на контрольные вопросы.
- •2. Практическая часть.
- •3. Контрольные вопросы.
- •Тема: “Подпрограммы-процедуры”
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы. Ход работы.
- •1. Теория.
- •2. Практическая часть.
- •3. Контрольные вопросы.
- •Тема: “Подпрограммы-функции”
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы. Ход работы.
- •Теория.
- •3. Контрольные вопросы.
- •Тема: “Множества”.
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы.
- •Теория.
- •Практическая часть.
- •Контрольные вопросы.
- •Тема: “Записи”.
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы.
- •Теория.
- •Обращение к полям записи.
- •Практическая часть.
- •Контрольные вопросы.
- •Тема: “Файлы, типизированные и нетипизированные файлы”.
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы.
- •Теория.
- •Стандартные процедуры для работы с файлами различного типа.
- •Процедуры для работы с типизированными файлами.
- •2. Практическая часть.
- •3.Контрольные вопросы.
- •Тема: “Файлы, текстовые файлы”.
- •1. Повторить теорию.
- •3. Ответить на контрольные вопросы Ход работы. Теория.
- •Практическая часть.
- •3.Контрольные вопросы.
3. Подумайте над вопросами и внесите предложенные изменения:
а) Что произойдет, если оператор Writeln ('S=',S) внести в тело цикла? Проверить результат на ЭВМ.
б) Если в исходной программе переменной В присвоить значение 1:
- что изменится в условии?
- как изменится результат? Проверить результат на ЭВМ.
в) Что произойдет, если в исходной программе из тела цикла удалить оператор В=В+2? Проверить результат на ЭВМ.
г) Что произойдет, если в исходной программе из тела цикла удалить счетчик цикла? Проверить результат на ЭВМ.
д) Изменится ли результат работы исходной программы, если операторы S:=S+B и B:=B+2 поменять местами?
4. Задание для самостоятельного выполнения.
Используя цикл с постусловием, написать программу нахождения произведения P первых N нечетных натуральных чисел.
5. Контрольные вопросы.
1. Сколько раз повторится тело цикла в задании 2?
2. Может ли быть написана программа задания 2 без использования счетчика цикла?
3. Укажите в задании 2 операторы, которые относятся к телу цикла?
4. Укажите в задании 2 операторы, в которых осуществляются начальные присвоения?
5. Укажите в задании 2 номер оператор, осуществляющий проверку условия выполнения тела цикла?
Тема: Вложенные циклы.
Цель: выработать умения и навыки учащихся использовать вложенные циклы при решении задач.
План.
-
Повторить теорию.
-
Набрать на компьютере заданную программу.
-
Внести предложенные изменения.
-
Выполнить задание.
-
Ответить на контрольные вопросы.
1. Теория.
Иногда при решении задач бывает необходимо использовать такую структуру как вложенные циклы. Если телом цикла является циклическая структура, то такие циклы называют вложенными (или сложными). Цикл, содержащий в себе другой цикл, называется внешним. Цикл, содержащийся в теле другого цикла, называется внутренним. Вложенные циклы могут быть любого типа и в различных сочетаниях. Правила организации как внешнего, так и внутреннего циклов, такие же, как и для простого цикла каждого из этих типов. При построении вложенных циклов все операторы внутреннего цикла должны полностью находиться в теле внешнего цикла.
Параметры циклов разных уровней изменяются не одновременно. Вначале все свои значения изменит параметр цикла наивысшего уровня вложенности при фиксированных (начальных) значениях параметров циклов с меньшим уровнем. Затем изменится на один шаг значение параметра цикла следующего уровня, и снова полностью выполняется самый внутренний цикл и т.д. до тех пор пока, параметры циклов всех уровней не примут все требуемые значения.
Пример:
Составим программу нахождения делителей каждого из чисел в интервале от 1 до N.
При решении рассматриваем числа от 2 до N, а делители от 1 до N-1.
Внешний цикл – цикл чисел, а внутренний – цикл делителей.
Program Deliteli;
Var I,J,N:integer;
Begin
Read (N); {вводим количество чисел}
For I:= 2 to N do {открываем внешний цикл}
Begin
Writeln (‘делители числа ’,I);
For J:=1 to I-1 do {открываем внутренний цикл}
If I mod J = 0 then write (J:6); {проверяем условие:
если число I при делении
на J дает остаток 0, то выводим
J (найденный делитель)}
End;
End.
Рассмотрим изменения параметров циклов:
При I=2 параметр J примет значение 1, и выполнится тело внутреннего цикла, на этом внутренний цикл завершит свою работу, т.к. его параметр J должен изменяться от 1 до I-1 (а в данном конкретном случае до 1(т.к. I=2), т.е. тело этого цикла выполнится один раз).
При I=3 параметр J примет значение 1, и выполнится тело внутреннего цикла, затем J примет значение 2, и снова выполнится тело внутреннего цикла, на этом внутренний цикл закончит свою работу, а внешний перейдет к следующему значению I.
При I=4 параметр J примет значение 1, и выполнится тело внутреннего цикла, затем J примет значение 2, и снова выполнится тело внутреннего цикла, затем J примет значение 3, и опять выполнится тело внутреннего цикла, на этом внутренний цикл закончит свою работу, а внешний перейдет к следующему значению I.
Данные операции повторяются до тех пор, пока параметр внешнего цикла I не примет все требуемые значения (т.е. до N), и не осуществится выход из вложенных циклов.
-
Наберите заданную программу и проверьте её работу на ЭВМ:
Найти сумму делителей каждого числа в диапазоне от 1 до N(само число при этом не учитывать).
Program Sum_Delitelei;
Var S,I,J,N:integer;
Begin
Read (N); {вводим количество чисел}
For I:= 2 to N do {открываем внешний цикл}
Begin
S:=0; {обнуляем ячейку для суммы делителей числа I}
For J:=1 to I-1 do {открываем внутренний цикл}
If I mod J = 0 then S:=S+J;
{если число I при делении на J дает остаток 0,
то увеличиваем сумму на значение J}
Writeln (‘сумма делителей числа ’, I, ‘ равна ’,S);
End;
End.