
- •Кафедра информационных технологий
- •Практикум
- •Введение
- •Тема 1. Основы алгоритмизации
- •1.1. Общие понятия и определения
- •1.2. Свойства информации
- •1.3. Этапы решения задач
- •1.4. Блок-схемы алгоритмов
- •Тема 2. Интегрированная среда Turbo Pascal 7.0
- •2.1. Основные элементы ide Turbo Pascal 7.0
- •2.2. Ввод программы в среде Turbo Pascal
- •2.3.Сохранение программы в файле
- •2.4. Работа с существующей программой
- •2.5. Компиляция программы в среде Turbo Pascal
- •Compile successful: Press any key... (Успешная компиляция: Нажмите любую клавишу...)
- •2.6. Выполнение программы в среде Turbo Pascal
- •2.7. Выход из среды Turbo Pascal
- •Тема 3. Элементы языка Турбо Паскаль и программирование линейных вычислительных процессов
- •3. 1. Алфавит языка
- •3. 2. Идентификаторы
- •3.3. Основные типы данных и операции с ними
- •3.4. Константы и переменные
- •3.5. Выражения
- •3.6. Стандартные математические функции языка Турбо - Паскаль
- •3.7. Структура программы
- •X,y : Integer;
- •3.8. Ввод исходных данных. Операторы read и readln
- •3.9. Вывод данных. Операторы write и writeln
- •Writeln (выражение 1, выражение 2, … , выражение n).
- •3. 10. Оператор присваивания
- •3.11. Пример составления программы
- •3.12. Контрольные вопросы
- •3.13. Варианты заданий
- •Тема 4. Программирование разветвляющихся процессов
- •4.1. Методические указания
- •4.2. Условный оператор if и составной оператор Begin … End
- •4.3. Оператор безусловного перехода goto и оператор отбора case
- •4.4. Контрольные вопросы
- •4.5. Варианты заданий
- •Тема 5. Циклические процессы
- •5.1. Общие сведения
- •5.2. Цикл с предусловием
- •I:integer;
- •5.3. Оператор цикла с постусловием
- •I:integer;
- •5.4. Цикл с параметром
- •I:integer;
- •5.5. Итерационные циклы
- •XI, s, X, e: real;
- •5.6. Контрольные вопросы
- •5.7. Варианты заданий
- •Тема 6. Ввод с клавиатуры и формы представления выходной информации
- •6.1. Операторы ввода и вывода
- •6.2. Управление шириной поля вывода в процедурах Write и Writeln
- •6.3. Пример выполнения задания
- •Xn, xk, hx : real;
- •Результаты выполнения программы
- •6.4. Контрольные вопросы
- •6.5. Варианты заданий
- •Тема 7. Вложенные циклы
- •7.1. Общие сведения
- •7.2. Примеры выполнения задания
- •X, hx, a, b, hx, s, x0, xn, y: Real;
- •7.3. Контрольные вопросы
- •7.4. Варианты заданий
- •Тема 8. Массивы и действия с ними.
- •8.1. Методические указания
- •8.2.Одномерные массивы
- •8.3.Многомерные массивы
- •V:stroka;
- •8.4.Символьные массивы
- •8.5.Ввод-вывод массивов
- •8.6. Примеры выполнения программ
- •I,k,l:integer;
- •I,j,m,r:integer;
- •8.7. Контрольные вопросы
- •I,j: integer;
- •8.8. Варианты заданий
- •Приложение 1
- •Приложение 2 Структурограммы
- •Рязанский государственный медицинский университет
- •Кафедра информационных технологий отчет
- •Рязань 2004
- •Составить программу для вычисления значения функции
- •Библиографический список
- •Содержание
7.2. Примеры выполнения задания
Задача 1. Вычислить таблицу значений функции
где
Постановка задачи предполагает организацию цикла по Х и вычисление конечной суммы произведения anX. Структурограмма задачи и соответствующая ей программа приведены ниже.
Program LAB41;
Var
N, NK: Integer;
X, hx, a, b, hx, s, x0, xn, y: Real;
Begin
Write (‘Введите X0, HX, XN, NK’);
Read (X0, HX, XN, NK);
X:=X0;
{Начальная установка суммы}
S:=0;
{Внутренний цикл по параметру N}
Repeat
For N:=0 to NK do begin
If X<=0.4 then A:=2*N
else A:=N/2;
B:=A*Exp(N*Ln(X));
S:=S+B;
End; {Конец цикла по N}
Y:=(Sin(X)+2)*S/(3+Cos(X));
WriteLn(‘X=’, X, ‘ ’: 5, ‘Y=’, Y);
X:=X+HX
Until X>XN;
End.
Рис. 1
Результаты выполнения программы
Введите X0, HX, XN, NK 0.5 0.1 1 10
X= 5.0000000000E-01 Y= 6.3567896112E-01
X= 6.0000000000E-01 Y= 1.8855699590E+00
X= 7.0000000000E-01 Y= 4.3980391496E+00
X= 8.0000000000E-01 Y= 9.5858985882E+00
X= 9.0000000000E-01 Y= 2.0488822908E+01
Задача 2.Билет на городском транспорте имеет шестизначную нумерацию от 000000 до 999999. Билет считается "счастливым", если сумма трех левых первых цифр равна сумме трех правых цифр. Составьте алгоритм и напишите программу подсчета числа "счастливых" билетов.
Обозначим через A,B,C,D,E,F соответственно разряды шестизначного числа слева направо. Каждый из разрядов этого числа изменяется от 0 до 9. Все переменные A,B,C,D,E,F являются параметрами циклов. В целом алгоритм можно построить по схеме вложенных циклов. Внешний цикл организуем по переменно А, все другие по B,C,D,E и F будут соответственно вложенными. Самый внутренний цикл организован по F. Далее согласно задаче внутри цикла по F необходим логический блок проверки условия A+B+C=D+E+F. Если оно выполняется, то счетчик числа "счастливых" билетов k=k+1. После чего ветвь "нет" и выход линейного блока k=k+1 объединяются и процесс многократно повторяется. Структурограмма этого алгоритма приведен ниже.
Рис. 2
Program Bilet;
Var
a,b,c,d,e,f:integer;
k:longint;
Begin
For a:=0 to 9 do
For b:=0 to 9 do
For c:=0 to 9 do
For d:=0 to 9 do
For e:=0 to 9 do
For f:=0 to 9 do
If (a+b+c)=(d+e+f) then k:=k+1;
Writeln ('k=',k);
End.
Результаты выполнения программы
k=55252
7.3. Контрольные вопросы
Дайте определение вложенного цикла.
Основные правила построения вложенных циклов.
Какова последовательность изменения параметров вложенного цикла?
Какие синтаксические схемы используются при построении вложенных циклов?
Чем определяется максимальная глубина вложенного цикла?
Может ли итерационный цикл быть внешним?
Чему равно значение параметра цикла при завершении внутреннего цикла?
Могут ли быть внутри итерационного цикла разветвления?
Приведите примеры вложенных циклов с глубиной вложения равной 4.
Можно ли для вложенных циклов последовательно трижды записать REPEAT, REPEAT, REPEAT?
Можно ли для вложенных циклов последовательно дважды записать WHILE X XK DO WHILE A AK DO?
Как определить объём выводимых данных для вложенного цикла?