Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмизация и языки программирования. Учебно-методический комплекс.pdf
X
- •1. СИЛЛАБУС ДИСЦИПЛИНЫ ДЛЯ СТУДЕНТОВ
- •Тема 1. Понятие алгоритма, свойства, типы, исполнители
- •Структура программы.
- •Имена, ключевые слова и знаки операций
- •Тема 7. Символьные типы данных.
- •Обработка символьных данных.
- •Тема 9. Строки. Строковые процедуры.
- •Функции
- •Тема 11. Множества (Set)
- •Работа с текстовыми файлами
- •Тема 13. Записи
- •Тема 14. Построение изображений на экране
- •Отображение точки на экране
- •Отображение линий на экране
- •Построение прямоугольников на экране
- •Построение многоугольников
- •Построение дуг, эллипсов и окружностей
- •Основная литература
- •Дополнительная литература
- •ГЛОССАРИЙ

3. Тематика и краткое описание лабораторных и студийных
работ
ЛАБОРАТОРНАЯ РАБОТА 1
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Цель работы:
1. Изучить некоторые возможности интегрированной среды
Turbo Pascal: редактирование исходного текста; компиляцию исходных модулей; запуск программ на исполнение; отладку программ.
2. Изучить структуру и правила записи программ на языке Turbo
Pascal.
3. Приобрести начальные навыки работы в системе Turbo Pascal
на примере программирования линейных алгоритмов.
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
1. Назначение системы программирования
Система программирования Turbo Pascal представляет собой
интегрированную среду, включающую: экранный редактор; компилятор; редактор связей; отладчик.
Интегрированная среда (Турбо-среда) позволяет набирать тексты программ с использованием встроенного редактора текстов, компилировать их, выполнять, проводить отладку программ.
Интегрированность среды проявляется не только в единой идеологии построения компонентов, но и в их связи друг с другом. Так, при
возникновении ошибки трансляции система автоматически переходит
в режим экранного редактирования и ставит курсор в точку возникновения ошибки. Аналогичные действия выполняются и отладчиком при возникновении ошибки во время выполнения программы.
2. Связь функция-клавиатура в интегрированной среде
Turbo Pascal
В TURBO имеется ряд клавиш, которые доступны пользователю в любой момент ("горячие" клавиши)
81

клавиатура
назначение
F1
Подсказка по текущей компоненте TURBO.
F2
Сохранение текущего редактируемого файла.
F3
Загрузка нового файла.
F4
Выполнить программу до строки , где находится курсор.
F5
Приблизить/отдалить активное окно.
F6
Переключить активное окно.
F7
Трассировка подпрограммы.
F8
Пооператорное выполнение программы.
F9
Компановка программы из модулей.
F10
Переход в верхнее меню.
ALT-0
Показать список активных окон.
ALT-F1
Показать пpедыдущий экpан подсказки (в списке хpанятся
последние 20 экpанов).
ALT-F3
Закpыть (удалить) текущее окно.
ALT-F5
Показать результаты выполнения программы
ALT-F9
Компилировать текущий редактируемый файл.
ALT-F
Активизировать FILE-меню.
ALT-E
Активизировать EDIT-меню.
ALT-S
Активизировать SEARCH-меню.
ALT-R
Активизировать RUN-меню.
ALT-C
Aктивизировать COMPILE-меню.
ALT-D
Активизировать DEBUG-меню.
ALT-O
Активизировать OPTIONS-меню.
ALT-W
Активизиpовать WINDOW-меню.
ALT-X
Выход в DOS.Конец pаботы.
ALT-SPACEBAR
Активизиpовать (SYSTEM)-меню.
Ctrl-F1
Подсказка по слову ,под которым находится курсор.
Ctrl-F2
Закончить процесс отладки.
Ctrl-F3
Показать состояние стека (история вызов пpоцедуp в
пpоцессе отладки).
Ctrl-F4
Вычислить (модифицировать) значение
пеpеменной или выражения.
Ctrl-F5
Пеpемещение окна и изменение его pазмеpов.
Ctrl-F7
Добавить выражение в окно просмотра
(WATCH).
Ctrl-F8
Переключение точки останова.
->,<-
На символ влево/вправо.
↓ ↑
На строку вниз/вверх.
3. Команды экранного редактора:
3.1 Команды перемещения курсора
клавиши действие
82

Home,end
На начало/конец строки.
Ctrl ->
На первую букву в слове справа от курсора.
Ctrl <
На первую букву в слове слева от курсора.
Ctrl-Home
В начало экрана.
Ctrl-End
В конец экрана
Ctrl-R [PgUp]
На один полный экран вверх
Ctrl-C [PgDn]
На один полный экран вниз
Ctrl-QB
В начало блока
Ctrl-QK
В конец блока
INS
Вставка/замена
Del
Удалить символ под курсором
BackSpace
Удалить символ слева от курсора
Ctrl-Y
Удалить строку
Ctrl-QY
Удалить символы до конца строки
Ctrl-T
Удалить слово справа от курсора
Ctrl-N
Вставить строку
клавиши
действие
Ctrl-KB
Пометить начало блока
Ctrl-KK
Пометить конец блока
Ctrl-KP
Напечатать блок
Ctrl-KC
Скопировать блок в текущую позицию
Ctrl-KY
Удалить блок
Ctrl-KV
Переместить блок в позицию курсора
Ctrl-KH
Сделать блок невидимым/видимым
Ctrl-KR
Считать блок с диска (дополнительное окно
Ctrl-KW
Записать блок на диск(дополнительное окно
клавиши действие
3.3 Команды работы с блоками
курсора
3.2 Команды вставки/удаления
позволяет задать имя файла)
позволяет задать имя файла)
4. Технология компиляции
4.1 В подменю OPTIONS -> COMPILER включить опцию
DEBUG INFORMATION. Команда COMPILE подменю COMPILE
вызывает компиляцию файла, загруженного для редактирования. На
83

экране появляется информационное окно, через которое пользователь
может наблюдать процесс компиляции.
4.2 Если в процессе компиляции была обнаружена ошибка,
система выполняет следующие действия:
- дальнейшая компиляция прекращается;
- окно трассировки исчезает с экрана;
- в окне редактирования EDIT в строке статуса появляется
сообщение, содержащее диагностику обнаруженной ошибки;
- курсор устанавливается на ту точку исходного текста, в кото-
ром обнаружена ошибка.
Необходимо исправить ошибку и опять запустить компилятор.
Процесс повторяется до тех пор, пока не получите успешную компиляцию.
4.3 В случае успешной компиляции в нижней строке окна появ-
ляется сообщение:
COMPILESUCCES : Press any key
(успех : нажмите любую клавишу)
Нажатие произвольной клавиши приводит к исчезновению окна
трассировки компиляции.
4.4 Результат трансляции - файл, полное имя которого обра-
зуется из имени компилируемого файла с добавлением расширения
.EXE или .TPU в зависимости от вида PASCAL-программы:
.EXE - для модуля PROGRAM
.TPU - для модуля UNIT
4.5 Подменю COMPILE -> DESTINATION MEMORY опpе-
деляет, где будет сохpаняться постpоенный файл : в памяти
(MEMORY) или на диске (DISK). Файл pазмещается в каталоге
указанном OPTION/DIRECTORIES/EXE & TPU, если каталог в этой
альтеpнативе не указан, то файл pазмещается в текущем каталоге.
5. Технология отладки программы
5.1 Трансляция программы должна выполняться с включенной
опцией DEBUG INFORMATION (встроенный отладчик) меню
OPTIONS -> COMPILER.
5.2 Для отладки программы выбрать меню RUN. Команда GOTO
CURSOR (F4) позволяет выполнить программу до строки, где
находится курсор.
84

Команда TRACE INTO (F7) - покомандное выполнение программы. Команда STEP OVER (F8) - пооператоpное выполнение
программы. В отличие от TRACE INTO при обращении к процедуре
или функции вход в них не производится, а они рассматриваются как
один оператор.
5.3 Меню DEBUG позволяет выполнить следующие действия во
вpемя отладки пpогpаммы:
Команда EVALUATE/MODIFY (Ctrl-F4) - позволяет вычислять
и модифицировать значение пеpеменной и выpажения.
Команда Add Watch - добавить пеpеменную или выpажение в
окно просмотра
Команда BREAKPOINT (Ctrl-F8) - установить (сбpосить) точку
пpеpывания в стpоку исходного модуля, где установлен куpсоp. Пpи
выполнении пpогpаммы по команде RUN по достижении отмеченной
стpоки, TURBO пеpеходит в pежим отладки. Повтоpное нажатие CtrlF8 снимает точку пpеpывания.
5.4 Наблюдение за значением пеpеменных можно осуществить
чеpез окно пpосмотpа WATCH, pезультаты пpогpаммы напpавляется
в окно вывода OUTPUT. Окна можно активизиpовать с помощью
команд WATCH и OUTPUT меню DEBUG.
6. Программирование линейных алгоритмов
Линейным называется алгоритм, в котором результат получается
путем однократного выполнения заданной последовательности дейст-
вий при любых значениях исходных данных. Согласно линейному
алгоритму, прогон программы начинается с ее первого выполняемого
оператора. Операторы будут задействованы последовательно, один за
другим, в соответствии с их расположением в тексте программы.
Перед выполнением этой работы необходимо ознакомиться со
структурой программы на языке Паскаль, правилами записи выражений, операторами присваивания и ввода-вывода, стандартными
арифметическими функциями.
ПРИМЕР: Найти сопротивление цели из двух последовательно
соединенных проводников.
program posledowatelnoe_soedinenie;
var r1,r2,r: integer;
begin
writeln('Вычисляется сопротивление R1+R2');
85

write('Сопротивление 1-го проводника R1 ? ');
ab
c
c
ab
+
b
ac
cba *
/
/* +
2
cos
yxba+
−+
2
1
2
1
2
+
+
− xx
x
22
22
2
11
yxyx−⋅
−+
−
5,0
7,1
++
+
−+
dc
d
c
ba
atg
a
a
2
1cos
1
sin
+
+
readln(r1);
write('Сопротивление 2-го проводника R2 ? ');
readln(r2);
writeln('R1 =',r1:4,' R2 =',r2:4);
r:=r1+r2;
writeln('R =',r:4);
end.
Упражнения:
1. Записать арифметические выражения на языке программи-
рования:
- на Паскале:
2. Выражения, записанные по правилам Паскаля, переписать в
традиционной математической форме:
sqrt(a+b)-cos((x+y)/2) -
3. Записать арифметические выражения на языке программи-
рования Паскаль:
.
4. Записать арифметические выражения на языке программи-
рования Паскаль:
.
5. Записать арифметические выражения на языке программи-
рования Паскаль:
.
.
6. Записать арифметические выражения на языке программи-
рования Паскаль:
.
ЛАБОРАТОРНАЯ РАБОТА 2
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
86

ЦЕЛЬ РАБОТЫ: Научиться использовать условную конструк-
ax bx c
0+ + =
цию, оператор выбора для программирования разветвляющихся алгоритмов.
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
Алгоритм называется разветвляющимся, если он содержит
несколько ветвей, отличающихся друг от друга содержанием вы-
числений. Выход вычислительного процесса на ту или иную ветвь
алгоритма определяется исходными данными задачи.
Перед выполнением работы необходимо ознакомиться с
правилами записи логических выражений, операций сравнения,
операторов IF, CASE, GOTO.
ПРИМЕР 1: Найти максимальную из двух величин а и в
pro gram ma x s imu m ;
var a,b,m:real;
begin
writeln('Максимум двух чисел');
write ('Первое число ? ');
readln(a);
write ('Второе число ? ');
readln(b);
if a>=b then m:=a else m:=b;
writeln('a=',a:2:0,' b =',b:2:0);
writeln('max =',m:2:0);
end.
ПРИМЕР 2: Найти корни квадратного уравнения
2
program uravnen;
m label;
var a,b,c,x,x1,x2,d:real;
begin
write('Введите коэффициенты ? ');readln(a);
if a=0 then begin writeln('Уравнение не квадратное');
goto m
end;
readln(b);
readln(c);
87

writeln('a= ',a,' b =',b,'c=',c);
d:=b*b-4*a*c;
if d<0 then writeln('Нет решений')
else begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
write('Решение: ');
wtiteln('x1= ',x1,'x2= ',x2);
end
m:end.
ПРИМЕР 3: Определить название столицы по названию госу-
дарства.
program capital;
var land,cap:string[20];
num:0..8;
begin
writeln('Определяем название столицы');
writeln('Введите название страны');
readln(land);
num:=0; {номер страны в списке}
if land='Австрия' then num:=1; if land='Болгария'then num:=2;
if land='Греция' then num:=3; if land='Италия' then num:=4;
if land='Норвегия' then num:=5; if land='Франция' then num:=6;
if land='США' then num:=7; if land='Россия' then num:=8;
case num of {определение столицы по номеру страны в списке }
1:cap:='Вена'; 2:cap:='София';
3:cap:='Афины'; 4:cap:='Рим';
5:cap:='Осло'; 6:cap:='Париж';
7:cap:='Вашингтон'; 8:cap:='Москва';
0:cap:='Такой страны не знаю'
end;
writeln(cap);
readln;
end.
Упражнения:
88

Составить блок-схему и программу алгоритмов нахождения
функции с выбором по расчетной формуле.
4. Написать программу решения квадратного уравнения
5. Написать программу вычисления стоимости покупки с уче-
том скидки. Скидка в 10% предоставляется, если сумма покупки
больше 1000 тенге.
6. Написать программу вычисления стоимости покупки с
учетом скидки. Скидка в 3% предоставляется, если сумма покупки
больше 500 тенге, в 5% - если сумма больше 1000 тенге.
7. Написать программу проверки знания даты основания Санкт-
Петербурга, В случае неверного ответа пользователя программа
должна выводить правильный ответ.
Введите число - 1705
Вы ошиблись, Санкт- Петербург был основан в 1703 году
8. Написать программу проверки знания даты начала второй
мировой войны. В случае неверного ответа программа должна
выводить правильный ответ.
9. Написать программу проверки знания истории архитектуры.
Программа должна вывести вопрос и три варианта ответа. Пользователь должен выбрать правильный ответ и ввести его номер.
ЛАБОРАТОРНАЯ РАБОТА 3
ПРОГРАММИРОВАНИЕ ЦИКЛОВ С ПАРАМЕТРОМ
ЦЕЛЬ РАБОТЫ: Овладеть навыками программирования на
языке Паскаль алгоритмов циклической структуры с заданным числом повторений.
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
Алгоритм называется циклическим, если он содержит много-
кратное выполнение одних и тех же ветвей при различных значениях
промежуточных данных.
Различают циклы с параметрами (циклы ДЛЯ) и циклы с
условием (циклы ПОКА). Для программирования циклов с
параметром в Паскале используют оператор FOR. Следует помнить,
что в качестве управляющей переменной должна быть переменная
дискретного типа.
89

ПРИМЕР 1: Приписать к 523*** три такие цифры справа,
чтобы полученное шестизначное число делилось на 7, на 8, на 9.
П Р О Г Р А М М А
program mlad;
var s,a,b,c,n: integer;
begin
for n:=0 to 999 do
begin
s:=523000+n;
a:= s mod 7;
b:= s mod 8;
c:= s mod 9;
if (a=0) and (b=0) and (c=0) then write (n:5)
end
end.
ПРИМЕР 2: Подсчитать сумму ряда: s=1-2+3-4+5- ... для
заданного числа членов.
program sum;
var i,n:integer; {счетчик и количество слагаемых}
s:real; {сумма ряда}
begin
writeln('Сколько слагаемых ?');
readln(n);
if n<=0 then
writeln('Плохое n')
else begin
s:=0;
П Р О Г Р А М М А
for i:=1 to n do
if odd(i) then {проверка четности номера}
s:=s+i
else
s:=s-i;
writeln('s=',s:10:3);
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
