русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Краткое изложение теоретического материала


Дата добавления: 2014-11-28; просмотров: 669; Нарушение авторских прав


Циклом называется многократное повторение некоторого набора действий. Эти повторяющиеся действия называются телом цикла. Программа, содержащая цикл, называется циклической.

В языке Паскаль существует три оператора для организации циклов трех разных видов.

Цикл с предусловием.

While <условие> Do

<тело цикла>;

где <условие> - логическое выражение,

<тело цикла> - простой или составной оператор.

Компьютер сначала проверяет условие (поэтому цикл называется циклом с ПРЕДусловием). Если оно истинно, будет выполнено тело цикла, и произойдет переход снова на проверку условия. То есть, пока условие истинно, будет выполняться тело цикла. Таким образом, условие является в данном операторе условием выполнения цикла. Цикл с предусловием может быть представлен блок-схемой на Рис. 3.

Тело цикла может выполняться бесконечно (условие всегда истинно), может не выполниться ни разу (условие сразу ложно).

Цикл с постусловием.

Repeat

<тело цикла>

Until <условие>;

где <условие> - логическое выражение,

<тело цикла> - группа операторов.

 
 

Компьютер сначала выполняет тело цикла, затем проверяет условие (поэтому цикл называется циклом с ПОСТусловием). Если оно ложно, будет вновь выполнено тело цикла, и так до тех пор, пока условие не станет истинным. Таким образом, условие в данном операторе является условием окончания цикла. Цикл с постусловием может быть представлен блок-схемой на Рис. 4.

Тело цикла всегда выполнится хотя бы один раз, может выполняться бесконечно (если условие всегда ложно).

Цикл со счетчиком (с параметром).

For k:=A To B Do

<тело цикла>;

где k – счетчик (переменная перечислимого типа, в ней хранится количество сделанных повторов тела цикла),

А – начальное значение счетчика,



В – конечное значение счетчика,

<тело цикла> - простой или составной оператор,

шаг изменения счетчика +1.

При А>В тело цикла не будет выполнено ни разу.

Если необходимо использовать цикл со счетчиком, меняющимся с шагом -1, оператор приобретает вид:

For k:=A Downto B Do

<тело цикла>;

где А>В.

Если алгоритм требует другого шага изменения счетчика (отличного от +1 и -1), необходимо использовать другие операторы цикла (While или Repeat).

Примеры решаемых задач

Пример 1. Составить программу, которая выведет на экран числа от 1 до N.

Пояснение: составим три программы, т.е. решим данную задачу с использованием трех различных циклических конструкций.

Цикл с предусловием Цикл с постусловием Цикл со счетчиком
Program Numbers; Uses Crt; Var k, n : Integer; Begin Clrscr; Write(‘Введите N ’); Readln(n); k:=1; While k<=n do Begin Writeln(k); k:=k+1 End; Readln End. Program Numbers; Uses Crt; Var k, n : Integer; Begin Clrscr; Write(‘Введите N ’); Readln(n); k:=1; Repeat Writeln(k); k:=k+1 Until k=n+1; Readln End. Program Numbers; Uses Crt; Var k, n : Integer; Begin Clrscr; Write(‘Введите N ’); Readln(n); For k:=1 To n Do Writeln(k); Readln End.

Пример 2. Составить программу, которая будет запрашивать пароль до тех пор, пока не будет введен верный ответ.

Программа:

Program Password;

Uses Crt;

Const Pass=’паскаль’; { верный ответ }

Var S : String;

Begin

Clrscr;

Repeat

Write (‘Пароль ’);

Readln (S); { вводим пароль }

If S <> Pass Then Writeln(‘Неверно!’)

Until S=Pass; { цикл закончен, если ввели верный пароль }

Writeln (‘Верно!’);

Readln

End.

Пример 3. Составить программу, которая выведет на экран все положительные члены арифметической прогрессии с разностью D= -1.5 и первым членом A.

Программа:

Program Progress;

Uses Crt;

Const D= -1.5; { Константа – разность прогрессии }

Var A : Real; { В А будут храниться по очереди все члены прогрессии }

Begin

Clrscr;

Write (‘Введите первый член прогрессии ’);

Readln (A);

While A > 0 Do {пока очередной член прогрессии положителен}

Begin

Writeln(A); { печатаем число – член прогрессии }

A := A + D { вычисляем следующий член прогрессии и записываем его в ту же переменную А }

End;

Readln

End.

Пример 4. Составить программу, которая вычислит общее количество «5», «4», «3» и «2», полученных студентами группы за экзамен по программированию, а также средний балл за экзамен, если известны количество студентов в группе и отметки каждого из них.

Программа:

Program Students;

Uses Crt;

Var N, K, K5, K4, K3, K2, S, M : Integer;

{ N – количество студентов в группе,

K – счетчик всех студентов,

K5 – счетчик «5»,

K4 – счетчик «4»,

K3 – счетчик «3»,

K2 – счетчик «2»,

S – сумма всех отметок,

M – отметка очередного студента }

Sb : Real; { Sb – средний балл за экзамен }

Begin

Clrscr;

Write (‘Сколько студентов в группе? ’);

Readln (N);

For K := 1 To N Do { перебираем всех студентов }

Begin

Writeln (‘введите отметку ’, K, ‘студента ’);

Readln (M); {В переменную М вводим все отметки по очереди}

S := S+M; { В переменной S накапливается сумма всех отметок}

Case M Of { Увеличиваем нужный счетчик }

5 : K5 := K5 + 1;

4 : K4 := K4 + 1;

3 : K3 := K3 + 1;

2 : K2 := K2 + 1

End

End;

Sb := S / N; { Вычисляем средний балл }

Writeln (‘Количество «5» ’, К5);

Writeln (‘Количество «4» ’, К4);

Writeln (‘Количество «3» ’, К3);

Writeln (‘Количество «2» ’, К2);

Writeln (‘Средний балл группы за экзамен ’, Sb :5:2);

Readln

End.

Пример 5. Составить программу, которая определит наибольшее из N вводимых чисел.

Алгоритм поиска экстремума (максимума или минимума) числовой последовательности: сначала вводится первое число, оно полагается максимальным (или минимальным). После этого вводятся все остальные числа (от 2-го до N-го), каждое из них сравнивается с максимумом (минимумом), и если оно больше (меньше), то максимуму (минимуму) присваивается введенное число.

Программа:

Program Maximum;

Uses Crt;

Var Max, X : Real;

K, N : Integer;

Begin

Clrscr;

Write (‘Сколько чисел? ’);

Readln (N);

Write (‘Введите первое число ’);

Readln (Max);

For K := 2 To N Do

Begin

Writeln (‘Введите ’, K, ‘ число ’);

Readln (X);

If X > Max Then Max := X

End;

Writeln (‘Наибольшее из введенных чисел ’, Max);

Readln

End.

Пример 6. Составить программу, которая рисует в алфавитно-цифровом режиме звездное небо из N разноцветных звезд, расположенных на экране случайным образом.

Указание: Для решения данной задачи необходимо использовать специальную функцию – датчик случайных чисел. Она вызывается следующим образом: Random (N). Датчик случайных чисел возвращает случайное целое число из интервала от 0 до N-1. Таким образом, после выполнения команды

A := Random (10);

значением переменной А будет какое-то число (неизвестное заранее) из интервала от 0 до 9. Для того, чтобы при каждом запуске программы генерировалась новая последовательность случайных чисел, необходимо перед вызовом функции Random выполнить инициализацию датчика случайных чисел. Она выполняется командой Randomize (т.е. вызывается процедура с таким именем).

Кроме того, для решения данной задачи может потребоваться использование следующих процедур из модуля CRT:

1. ClrScr; - очистка экрана;

2. TextColor(c); - цвет выводимого текста, 0 £ с £ 15. Параметр С – это номер цвета (см. Приложение 1).

3. TextBackGround(c); - цвет фона, 0 £ с £ 7. Параметр С – это номер цвета (см. Приложение 1).

4. GotoXY(x,y); - позиционирование курсора в точку с координатами (x,y): 1 £ x £ 80, 1 £ y £ 25 (или 1 £ y £ 40 в зависимости от установленного максимального количества строк в алфавитно-цифровом режиме).

5. Delay(n); - приостановка (задержка) работы программы на n миллисекунд.

Программа:

Program Sky;

Uses Crt;

Var n, i, x, y, c : Integer;

Begin

ClrScr;

Write (‘Сколько звезд будет на небе ? ’);

Readln (n);

ClrScr;

Randomize;

For i := 1 To n Do

Begin

x := random (80) + 1;

y := random (24) + 1;

c := random (15) + 1;

TextColor (c);

Gotoxy (x, y);

Write (‘ *’)

end;

Readln

End.



<== предыдущая лекция | следующая лекция ==>
Контрольные задания | Контрольные задания


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.142 сек.