Методические рекомендации к лабораторным работам по программированию на языке Паскаль

Государственное автономное образовательное учреждение
среднего профессионального образования
«Ленинградский социально-педагогический колледж»
Краснодарского края














Методические рекомендации
к лабораторным занятиям
по дисциплине Основы алгоритмизации и программирования






для специальности
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; Begin kol:=0; With spisok do For i:=1 to 3 do begin n:=i; Write (' Vvedite FIO # ', i ,' '); Readln (fio); s:=0; For j:= 1 to 3 do begin write ( '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