
- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Основные различия между операторами циклов с постусловием и предусловием
1. В операторе цикла с предусловием задается условие работы цикла; в операторе цикла с постусловием - условие выхода из цикла .
2. В операторе цикла с предусловием условие проверяется в начале, а потом выполняется тело цикла (тело цикла может не выполниться ни разу); в операторе цикла с постусловием - условие проверяется в конце (тело цикла выполняется хотя бы один раз).
3. Между REPEAT и UNTIL можно поместить несколько операторов, в операторе цикла с предусловием тело цикла содержит только один оператор (иначе используются операторные скобки BEGIN ... END).
Пример 1
Написать программу для вычисления величины
для всех n, удовлетворяющих условию
1/(nx)2>a; (x≠0).
Решение
Так как n - в знаменателе, то при увеличении n дробь уменьшается.
Программа будет иметь следующий вид:
{Применение оператора цикла с предусловием}
Var
n:integer;
A,Z,x: real;
Begin
Read(x,a);
n:=1;
z:=0;
while 1/sqr(n*x)>a do {Если при n=1 условие истинно, то z будем увеличивать, иначе – сразу конец цикла и мы попадаем на вывод z}
begin
z:=z+1/sqr(n*x);
n:=n+1
end;
Write(z)
End.
Напишем структурную схему программы:
Задания
№1. Определить значение переменной S после выполнения следующих операторов:
а) s:=0;
i:=0;
While i<5 do i:=i+1; s:=s+1/i;
б) S:=0;
i:=1;
While i>1 do begin s:=s+1/i; i:=i-1 end;
№2. Вычисление f=10! описать каждым из трех вариантов оператора цикла.
№3. Найти сумму чисел, предшествующих первому отрицательному в последовательности данных чисел. (Должна многократно выполняться процедура ввода read(x).)
№4. Так же, как и в предыдущей задаче, рассмотрим все числа, предшествующие первому отрицательному в последовательности данных чисел. Написать программу, которая позволяет получить те из них, которые лежат в интервале от 1,5 до 2.
№5. Написать программу нахождения среди чисел 1, 1+1/2, 1+1/2+1/3,... первого, большего данного числа a.
№6. Комиссия отбирает студентов в колхоз и на СКЗ по следующему признаку: если студенту нет 18 лет, он едет в колхоз, а если есть - на СКЗ.
а) Сколько из первых 20 студентов, пришедших на комиссию, поедет на СКЗ?
б) Сколько студентов пройдет перед комиссией, прежде чем наберется первый отряд из 20 человек на СКЗ?
№7. Дана последовательность из 70 целых чисел, содержащая ноль. Определить местоположение первого неотрицательного числа в этой последовательности.
№8. Если среди чисел SinXn(n=1,2,...,30) (X?0) есть хотя бы одно отрицательное число, то логической переменнойtприсвоить значениеtrue, а иначе - значениеfalse.
№9. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.
№10. Курсор находится на экране в точке с координатами (40,13). Организовать перемещение курсора по экрану, используя клавиши I(вверх),J(влево),K(вниз),L(вправо). (Вместо оператораREAD(C) использовать функциюREADKEYмодуляCRT. Учесть границы экрана.)