Методические рекомендации к лабораторным работам по программированию на языке Паскаль
Государственное автономное образовательное учреждение
среднего профессионального образования
«Ленинградский социально-педагогический колледж»
Краснодарского края
Методические рекомендации
к лабораторным занятиям
по дисциплине Основы алгоритмизации и программирования
для специальности
080802 Прикладная информатика
(по отраслям)
2011
ББК 32.81
М 54
Печатается по решению редакционно-издательского совета ГАОУ СПО «Ленинградский социально-педагогический колледж» Краснодарского края, протокол № 7 от «25» ноября 2011 года
Автор-составитель: Казарин Николай Петрович - преподаватель информатики высшей квалификационной категории.
Методические рекомендации к лабораторным занятиям по дисциплине Основы алгоритмизации и программировании.
Ленинградская: информационно-аналитический и издательский центр ГАОУ СПО «Ленинградский социально-педагогический колледж» Краснодарского края, 2011, – 20с.
Рекомендации адресованы студентам, обучающимся по специальности 080802 Прикладная информатика (по отраслям), содержит материалы, которые способствуют обобщению, систематизации, углублению, закреплению полученных теоретических знаний по конкретным темам общепрофессиональной дисциплины; формированию умений применять полученные знания на практике, реализации единства интеллектуальной и практической деятельности; развитию интеллектуальных умений у будущих специалистов: аналитических, проектировочных, конструктивных и др.; выработке при решении поставленных задач таких профессионально значимых качеств, как самостоятельность, ответственность, точность, творческая инициатива.
Рассмотрено и одобрено на заседании предметно-цикловой комиссии, протокол № 1 от «26»августа 2011 г. Председатель ПЦК: Харченко М.В.
Рецензент: ____________, Харченко Марина Викторовна, преподаватель информатики высшей квалификационной категории ГАОУ СПО «Ленинградский социально-педагогический колледж» Краснодарского края.
ББК 32.81
( Казарин Н.П.., 2011
( Ленинградский социально-педагогический колледж Краснодарского края, 2011
Пояснительная записка
Основная цель, которая ставится студенту при выполнении задания - практическое освоение всех этапов разработки надежной программы для решения задачи на ПЭВМ, начиная от анализа условия задачи и заканчивая сдачей отчета по написанной программе. Каждое лабораторное занятие состоит из одной или 2-х задач..
Для повышения эффективности составления алгоритма относительно больших программ применяется структурный подход к программированию. Это способствует уменьшению затрат на создание и дальнейшее использование программ при эксплуатации.
Структурный подход к программированию состоит из трех частей: нисходящая разработка, структурное программирование и сквозной контроль (тестирование).
При нисходящей разработке проектирование программирование ведутся по методу "сверху - вниз", который предусматривает сначала определение задачи в общих чертах, а затем задача разбивается на ряд более простых подзадач. Для каждой подзадачи составляется алгоритм ее решения.
Критериями оценки результатов лабораторного занятия работы являются:
уровень усвоения студентом учебного материала;
умения студента использовать теоретические знания при выполнении практических заданий;
оформление материала в соответствии с требованиями.
РАБОЧИЙ ПЛАН ПО ОРГАНИЗАЦИИ
ЛАБОРАТОРНЫХ ЗАНЯТИЙ
Лабораторное занятие № 1(2 часа)
"Программирование линейных алгоритмов."
Цель работы: выработать практические навыки работы с системой Borland Pascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы.
Общие сведения:
Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Операторы программы выполняются последовательно, один за другим, в соответствии с их расположением в программе.
Пример: Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2) Решение:
Данные: x1,y1,x2,y2-Integer
Результаты: d-Real
Метод решения:
Составим блок-схему алгоритма
Уточним содержимое блока "Вычисление и печать расстояния"
Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.
program Pr1;
var x1, x2, y1, y2: integer;
d:real;
begin
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2= '); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d=',d);
readln
end.
Доработаем программу, так чтобы она обладала некоторым интерфейсом.:
program Pr1;
var x1, x2, y1, y2: integer;
d:real;
begin
writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');
writeln('Введите координаты двух точек:');
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2 ='); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d= ',d);
writeln('нажмите Enter для завершения работы программы');
readln;
end.
Набирите программу и запустите её.
Введите данные: x1=5, y1=6, x2=8, y2=10
Контрольные вопросы:
Каковы назначение и возможности системы Borland Pascal?
Как запустить программу на трансляцию и выполнение?
Как записываются операторы начала и конца программы?
Из каких разделов состоит программа на языке Pascal?
В какой последовательности должны быть записаны разделы программы на языке Pascal?
Как записываются операторы вывода на экран в Pascal?
Задачи:
1. Дана сторона квадрата a. Найти его периметр P = 4·a.и площадь S = a2.
2. Даны стороны прямоугольника a и b. Найти его площадь S = a·b и периметр P = 2·(a + b).
3. Дана длина ребра куба a. Найти объем куба V = a3 и площадь его поверхности S = 6·a2.
4. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).
5. Найти длину окружности L и площадь круга S заданного радиуса R:
L = 2·
··R, S =
··R2.
Лабораторное занятие № 2 (2 часа)
«Программирование разветвляющихся алгоритмов».".
Цель работы: выработать практические навыки работы с системой Borland Pascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы с условным оператором.
Выполнение работы:
Запустить интегрированную среду Turbo Pascal.
В окне редактора наберите программу и сохраните файл под именем LR2.PAS в своей паке (Фамилие. дата) на Рабочем столе
Program LR2;
Usec Crt;
Var A, B: Integer;
Begin
Clrscr;
Write ('Введите числа А, B - ');
Readln (A, B);
If A > B Then
WriteLn ('Число А – больше')
Else
WriteLn ('Число B – больше');
WriteLn ('Программа завершила свою работу');
Readln;
End.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Начертите в тетради таблицу:
Значение
А
Значение
В
Результат выполнения программы
Результат выполнения программы с begin - end
1
23
9
2
23
34
3
23
23
Начертите в тетради блок-схему, которая соответствует приведенной программе.
Проверьте правильность работы программы, задав в качестве исходных данных А и В, значения указанные в таблице.
Результат выполнения программы (какие сообщения выдаются на экран монитора) запишите в четвертый столбец таблицы.
Объясните в каждом случае, как работает условный оператор If.
Поставьте «;» после оператора WriteLn (Число А - больше’) в строке 9. Выполните компилирование программы. Появилось сообщение об ошибки «Error 113: Error in statement». Почему это произошло? Исправьте ошибку.
Внесите изменения в программу в строки 11 – 12, добавив составной оператор begin – end.
begin WriteLn ('Число B – больше');
WriteLn ('Программа завершила свою работу'); end;
11
12
Начертите в тетради блок-схему, которая соответствует полученной программе.
Проверьте правильность работы программы, задав в качестве исходных данных А и В, значения указанные в таблице.
Результат выполнения программы (какие сообщения выдаются на экран монитора) запишите в пятый столбец таблицы.
Объясните в каждом случае, как работает условный оператор If.
6. Запишите ответы на вопросы
Вопросы.
Что такое составной оператор и для чего он используется?
Изобразите полную схему разветвляющегося алгоритма. Укажите ее основные элементы.
Запишите формат условного оператора.
Чем отличаются полная и сокращенная форма условного оператора?
Лабораторное занятие № 3 (2 часа)
“Операторы цикла ”.
Цель работы: выработать практические навыки работы с системой Pascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы с циклическим оператором.
Выполнение работы:
Запустить интегрированную среду Turbo Pascal.
В окне редактора наберите программу и сохраните файл под именем LR3.PAS в своей паке (Фамилие. дата) на Рабочем столе
Program zikl;
Uses Crt;
Var I, A, B : Integer;
Begin
ClrScr;
Write ('Введите начальное значение - ');
ReadLn (A);
Write ('Введите конечное значение - ');
ReadLn (B);
For I := A To B do
WriteLn ( Значение I = ’ , I );
Readln;
End.
1
2
3
4
5
6
7
8
9
10
11
12
3. Выполните программу, введя различные исходные значения для переменных A, B, и запишите в тетрадь полученные результаты в виде таблицы:
№
п/п
Значения A
Значения B
Результат вывода на экран
1
2
5
2
2
2
3
4
3
4. Исправьте программу, заменив цикл FOR на цикл WHILE. В окне редактора наберите программу и сохраните файлы под именем LR31.PAS в своей паке (Фамилие. дата) на Рабочем столе
5. Выполните программу, введя различные исходные значения для переменных A, B, и запишите в тетрадь полученные результаты в виде таблицы:
№
п/п
Значения A
Значения B
Результат вывода на экран
цикл WHILE
Результат вывода на экран
цикл UNTIL
1
2
5
2
2
2
3
4
3
Вопросы для повторения
Решение каких задач можно осуществлять, используя циклический алгоритм?
Для чего используется оператор For?
Чем отличается форма For - to от For - downto?
Каков порядок выполнения оператора For?
Какое значение (тип выражения) может принимать начальное и конечное значение переменной цикла?
При каком условии оператор цикла не будет выполняться?
Каков порядок выполнения оператора UNTIL?
Каков порядок выполнения оператора WHILE?
Лабораторное занятие № 4 (2 ч.)
«Использование процедур в программировании».
Цель работы - изучить операторы, используемые для организации подпрограмм - процедур, получить практические навыки в составлении программ.
Выполнения работы:
Запустить интегрированную среду Turbo Pascal.
2. В окне редактора наберите программу, исполните её и сохраните файл под именем LR4.PAS в своей паке (Фамилие. дата) на Рабочем столе
program LR4;
uses crt;
var a,b,s:real;
procedure summa(x,y:real;var s:real);
begin
s:=x+y;
Writeln(x:3:1,'+',y:3:1,'=',s:3:1);
end;
begin
clrscr;
writeln('Введите два числа');
readln(a,b);
summa(a,b,s);
readln;
end.
3. Составте блок-схему алгоритма для данной программы.
4. Какая используется процедура в программе?
5. Измените программу так ,
(Вариант 1: чтобы она находила разность и частное двух чисел.)
(Вариант 2: чтобы она находила сумму произведение двух чисел.)
Каждое действие оформите в виде процедуры используя глобальные параметры x и y.
6. В окне редактора наберите программу, исполните её и сохраните файл под именем LR41.PAS в своей паке (Фамилие. дата) на Рабочем столе
Ответьте на вопросы:
1. Что такое подпрограмма?
2. Что такое стандартная процедура?
3. Что такое глобальные переменные?
4. Что такое локальные переменные?
5. Где в программе описывается процедура?
Лабораторное занятие № 5 (2 ч.)
«Работа с массивами»
1. Цель работы:
Получение практических навыков при работе с массивами.
Знакомство с алгоритмами задания массива.
Выполнение работы.
Запустить интегрированную среду Turbo Pascal.
2. В окне редактора наберите программу, исполните её и сохраните файл под именем LR5.PAS в своей паке (Фамилие. дата) на Рабочем столе
program LR5;
Uses CRT;
var
a: array[1..5] of integer;
i: byte;
begin
Clrscr;
for i:=1 to n do begin
a[i]:=random(21)-10;
Writeln(a[,i,’]=’,a[i];
end;
readln;
end.
3. Составьте блок-схему этой программы.
4. Какому отрезку принадлежат элементы этого массива?
5. Исполните данную программу и запишите результат в тетрадь.
6. Исправьте данную программу так , чтобы она находила сумму:
А. Вариант –положительных элементов массива.
Б. Вариант –отрицательных элементов массива.
7. Начертите блок - схему данной программы.
8. Исполните данную программу и запишите результат в тетрадь.
9. Сохраните данную программу в файле LR51.PAS в своей паке (Фамилие. дата) на Рабочем
Лабораторное занятие № 6 (2 ч.)
«Строковые данные в программировании»
Цель работы:
Получение практических навыков работы со строками в программировании.
Выполнение работы.
Запустить интегрированную среду Turbo Pascal.
2. В окне редактора наберите программу, исполните её и сохраните файл под именем LR6.PAS в своей паке (Фамилие. дата) на Рабочем столе
program LR6;
uses CRT;
Var s,s1:string;
i:integer;
begin
Clrscr;
Writeln('введите строку');
Readln(s);
s1:='';
for i:=1 to length(s) do
s1:=s[i]+s1;
Writeln('введенное слово ',s,' наоборот ',s1);
readln;
end.
3. Составьте блок-схему этой программы.
4. Исполните данную программу и запишите результат в тетрадь.
5. Какая задача решается данной программой?
6. Исправьте данную программу так , чтобы она давала ответ, является ли данное слово перевертышем (например: 'казак'='казак'; а 'сон'<>'нос').
7. Начертите блок - схему данной программы.
8. Исполните данную программу и запишите результат в тетрадь.
9. Сохраните данную программу в файле LR61.PAS в своей паке (Фамилие. дата) на Рабочем столе
10. Ответьте на вопросы:
Как описываются строковые переменные?
Какая максимальная длина строки допустима в Pascal?
Какие операции допустимы над строковыми данными?
Какие стандартные процедуры и функции для работы со строками вы знаете.
Лабораторное занятие № 7 (2 ч.)
«Использование записей в программировании.»
Цель работы:
Получение навыков в организации ввода/вывода значений комбинированного типа данных.
Получение практических навыков программирования задач с использованием записей.
Постановка задачи:
Пример: Из ведомости 3-х студентов с их оценками ( порядковый номер, Ф.И.О. и три оценки) определить количество отличников и средний бал каждого студента.
Program Spic;Type wed = record n : integer ;fio : string[40] ;bal : array [1..3] of integer end;Var spisok : wed ; i, j, kol, s : integer; sr : real;Beginkol:=0; With spisok do For i:=1 to 3 do beginn:=i;Write (' Vvedite FIO # ', i ,' ');Readln (fio);s:=0;For j:= 1 to 3 dobeginwrite ( 'Vvedite ocenky: ' );readln ( bal [j] );s := s+ bal [j];end;if s=15 then kol:=kol+1; sr := s/3; writeln ( fio, ', Sredniy bal = ', sr:4:1); end;writeln ( ' Kolichestvo otlichnikov = ', kol );readln;end.
1.Запустить программу и выполните её.
2. Запишите программу и результат её работы в тетрадь.
3. Сохраните данную программу в файле LR7.PAS в своей паке (Фамилие. дата) на Рабочем столе .
4. Запишите имя записи,используемой в программе, перечислите поля записи и укажите их тип.
Лабораторная работа 8
Работа с файлами
Цель работы: познакомить с понятием файлового типа данных ; выработать навыки работы с файловым типом данных в языке программирования Pascal, научиться считывать информацию из файлов, записывать информацию в файл; научится решать задачи с использованием файлов
Общие сведения
Файл представляет собой структурированный тип данных, содержащий последовательность компонентов одного типа и одной длины. Число элементов в файле (длина файла) не фиксировано. Это является основным отличием файла от массива.
Файл можно представить как ленту, у которой есть начало, а конец не фиксирован. Элементы файла записываются на эту ленту последовательно, друг за другом с помощью некоторого устройства - указателя файла. При чтении или записи этот указатель перемещается к следующему элементу и делает его доступным для обработки. В каждый момент доступен для чтения или записи только тот элемент файла, на который установлен указатель.
Пример
Пример1. . Открыть файл f86.txt и сохранить в нем N целых чисел в пределах от 65 до 90:
А) считайте информацию из данного файла;
Б) найдите сумму элементов, находящихся в файле.
Program fi186;
Uses CRT;
var f:file of integer;
n,m,i,s:integer;
a:string;
begin
clrscr; s:=0;
a:='e:\work\f86';
assign(f,a);rewrite(f);
randomize;
write('введите количество чисел n=');readln(n);
writeln('числа записанные в файл');
for i:=1 to n do begin
m:=trunc(random(25))+65;
write(f,m);
write(m,'; ');
end;
close(f);
writeln;
assign(f,a);reset(f);
Writeln('числа считанные из файла');
while not eof(f) do begin
read(f,n);
write(n,'; ');
s:=s+n
end;
close(f);
writeln;
writeln('сумма чисел, считанных из файла s=',s);
readln;
end.
1.Запустить программу и выполните её.
2. Запишите программу и результат её работы в тетрадь.
3. Сохраните данную программу в файле LR8.PAS в своей паке (Фамилие. дата) на Рабочем столе .
4. Запишите имя внутреннего и ванешнего файлов, используемых программой.
Контрольные вопросы
Что такое файл? Какие существуют виды файлов?
Какими стандартными процедурами и функциями располагает Borland Pascal для работы с файлами?
Каково должно быть содержание программы по созданию файла и его корректировки (замена элементов, добавление элементов, удаление элементов)?
Какие бывают файлы?
Методические рекомендации к лабораторным занятиям
по дисциплине Основы алгоритмизации и программирования
Ответственный редактор и корректор Казарин Н.П.
Компьютерный набор Казарин Н.П.
Верстка и дизайн Дорохова Н.Г.
Сдано в набор 7.11.2011г. Подписано в печать 9.11.2011г.
Формат 60x84/16 Усл. печ. л. 2,75 Тираж 15 экз.
Заказ № 205 Бумага тип. №1
Информационно-аналитический и издательский центр Ленинградского социально-педагогического колледжа Краснодарского края. 353740, Краснодарский край, станица Ленинградская, ул. Красная, 152. Тел.(86145) 7-01-40, 7-37-21. Факс: (86145) 7-31-41;
е-mail: lpk31@mail.ru; www. lpk31.ru.
Отпечатано в типографии ГАОУ СПО «Ленинградский социально-педагогический колледж» Краснодарского края
13PAGE 15
13PAGE 14315
Заголовок 1Заголовок 315