Главная страница


Специальность



Скачать 429.15 Kb.
НазваниеСпециальность
страница1/4
Дата18.04.2016
Размер429.15 Kb.
ТипЛабораторная работа
  1   2   3   4




ГБОУ СПО Арзамасский коммерческо-технический техникум



ПОСОБИЕ ДЛЯ СТУДЕНТОВ

ДИСЦИПЛИНА:«Основы алгоритмизации и программирования»

СПЕЦИАЛЬНОСТЬ: 230103 «Автоматизированные системы

обработки информации и управления»

г. Арзамас, 2011 г.
Рассмотрено на заседании

МО «___ » ______ 2011 г.

Протокол № __ от «___» ______ 2011 г.

Председатель МО ______________ КуликоваН.Ю.



Автор: КуликоваН.Ю.– к.п.н., преподаватель ГБОУ СПО «Арзамасский коммерческо-технический техникум»



Пособие включает комплект лабораторных работ по дисциплине «Основы алгоритмизации и программирования». Материал, включенный в пособие, составлен в соответствии с календарно-тематическим планированием специальности 230103 «Автоматизированные системыобработки информации и управления», для групп второгокурса.

Пособие рассчитано на студентов.
Содержание



1

Введение ……………………………………………………………………………

3

2

Лабораторная работа 1. Составление таблиц истинности ………………………

5

3

Лабораторная работа 2. Составление программ разветвляющейся усложненной структуры …………………………………………………………………………..

7

4

Лабораторная работа 3. Составление программ циклической структуры ………

9

5

Лабораторная работа 4. Составление программ усложненной структуры ………

11

6

Лабораторная работа 5. Обработка одномерных массивов ………………...……

13

7

Лабораторная работа 6. Обработка двумерных массивов ………………………

16

8

Лабораторная работа 7. Использование стандартных функций для работы с массивами ….………………………………………………………………………

18

9

Лабораторная работа 8. Определение минимального, максимального элемента в массиве ……………………………………………………………………………

19

10

Лабораторная работа 9. Работа со строковыми переменными …………………

20

11

Лабораторная работа 10. Использование стандартных функций и процедур для работы со строками ………………………….…………………………………......

23

12

Лабораторная работа 11. Организация процедур…………………………..……...

25

13

Лабораторная работа 12.Использование процедур……………………………….

29

14

Лабораторная работа 13. Организация и использование функций……………

30

15

Литература ….…………………………..…………………………………...……….

33



Введение
Пособие предназначено для студентов специальности 230103 «Автоматизированные системы обработки информации и управления». Включает лабораторные работы курса «Основы алгоритмизации и программирования». Пособие составлено в соответствии с рабочей программой по данной дисциплине. Каждая лабораторная работа включает тему, цель, оборудование, теоретические сведения, методические указания, задания для самостоятельного выполнения.

Выполнение лабораторных работ должно проходить в компьютерном классе. Для выполнения лабораторных работ необходимо программное обеспечение: TurboPascal, MSExcel.

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

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

Лабораторная работа 1

Тема: Составление таблиц истинности

Цель: отработать навыки построения таблиц истинности; научиться автоматизировать построения таблиц истинности с использованием программы MSExcel

Оборудование: ПК IBMPC; OSWindows; ПО MSExcel

Методические указания

Логическая операция КОНЪЮНКЦИЯ (логическое умножение) в естественном языке соответствует союзу и, в алгебре высказываний обозначается &.

Истинность высказывания С=А & В, образованного в результате конъюнкции, задается таблицей истинности логического умножения:

А

В

А & В

0

0

0

0

1

0

1

0

0

1

1

1

Составное высказывание, образованное в результате конъюнкции, истинно тогда и только тогда, когда истинны входящие в него простые высказывания.

Логическая операция ДИЗЪЮНКЦИЯ (логическое сложение) в естественном языке соответствует союзу или, в алгебре высказываний обозначается .

Истинность высказывания С=А  В, образованного в результате дизъюнкции, задается таблицей истинности логического сложения:

А

В

С=А  В

0

0

0

0

1

1

1

0

1

1

1

1

Составное высказывание, образованное в результате дизъюнкции, истинно тогда, когда истинно хотя бы одно из входящих в него простых высказываний.

Логическая операция ИНВЕРСИЯ (отрицание) в естественном языке соответствует частице не, в алгебре высказываний обозначается .

Истинность высказывания С=  А, образованного в результате инверсии, задается таблицей истинности логического отрицания:

А

 А

0

1

1

0

Инверсия делает истинное высказывание ложным и наоборот.

Высказывания, у которых таблицы истинности совпадают, называются равносильными. Например, А &В=  (А  В), докажем

А

В

А

В

А &В




А

В

А  В

 (А  В)

0

0

1

1

1




0

0

0

1

0

1

1

0

0




0

1

1

0

1

0

0

1

0




1

0

1

0

1

1

0

0

0




1

1

1

0



Таблицы истинности совпадают, следовательно, логические выражения равносильны: А &В=  (А  В)

Пример. Для формулы A&(BB&C) построить таблицу истинности.

А

В

С

В

С

В &С

B(B&C)

A&(BB&C)

0

0

0

1

1

1

1

0

0

0

1

1

0

0

0

0

0

1

0

0

1

0

1

0

0

1

1

0

0

0

1

0

1

0

0

1

1

1

1

1

1

0

1

1

0

0

0

0

1

1

0

0

1

0

1

1

1

1

1

0

0

0

1

1

Логические выражения и таблицы истинности

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

ЗАДАНИЕ 1.Построить таблицу истинности сложного высказывания: А Ú (А & В) Ú (В & С)

ЗАДАНИЕ 2.Докажите закон ассоциативности. (А & В) & С= А & (В & С)

Докажите закон исключения. (А & В) Ú (ØА & В)=В, (А Ú В) & (Ø А Ú В)=В

Для того чтобы автоматизировать процесс составления таблиц истинности составим её в программе MSExcel.

Загрузите MSExcel, для этого выполните команду Пуск – Программы – MicrosoftOffice - MSExcel.

Докажем с помощью программы МSExcelЗакон де Морган А&В= (А  В).

Заполним ячейки А1, А2, А3, А4, А5, В1, В2, В3, В4, В5 по вышеприведенному образцу. В ячейку С2 введем функцию =не (А2), она соответствует выражению А. В ячейку D2 ведем функцию =не (В2), она соответствует выражению В. В ячейку Е2 введем функцию =и(С2;D2), она соответствует выражению А& В. В ячейку F2 введем функцию =не (или (А2;В2)), она соответствует выражению  (АВ). Выделим ячейки с А2 по F2 в блок, наведем указатель мыши на маркер заполнения и протянем вниз на три строки. Если результат заполнения столбцов Е и F будут одинаковые, закон де Моргана доказан. В результате должна получиться таблица:




А

В

С

D

E

F

1

A

B

А

В

А &В

(А  В )

2

ЛОЖЬ

ЛОЖЬ

ИСТИНА

ИСТИНА

ИСТИНА

ИСТИНА

3

ЛОЖЬ

ИСТИНА

ИСТИНА

ЛОЖЬ

ЛОЖЬ

ЛОЖЬ

4

ИСТИНА

ЛОЖЬ

ЛОЖЬ

ИСТИНА

ЛОЖЬ

ЛОЖЬ

5

ИСТИНА

ИСТИНА

ЛОЖЬ

ЛОЖЬ

ЛОЖЬ

ЛОЖЬ

Она соответствует нижеприведенным таблицам истинности:

А

В

А

В

А &В




А

В

АВ

(А В)

0

0

1

1

1

0

0

0

1

0

1

1

0

0

0

1

1

0

1

0

0

1

0

1

0

1

0

1

1

0

0

0

1

1

1

0

ЗАДАНИЕ 3.Автоматизируйте построение таблиц истинности для следующих формул в программе MSExcel.

а) А(ВВ&C) б) A&(B&BC) в) A(BB)&A(B&C)
Контрольные вопросы

  1. Перечислите основные логические операции.

  2. Что изучает наука логика?


Лабораторная работа 2

Тема:Составление программ разветвляющейся усложненной структуры

Цель: научиться составлять программы с использованием оператора CASE..OF, IF.. усложненной структуры

Оборудование: ПК, ПО TurboPascal
ЗАДАНИЕ 1. Выполнить программы на языке программирования TurboPascal по образцу.

Программа 1. Использование структуры case ... ofдля преобразования введенного целого числа из диапазона (0..4) в его словесное представление

Program Digit2;

varNum: integer;

begin

write('Введитечисло:');

readln(Num);

case Num of

0: writeln('Нуль');

1: writeln('Один');

2: writeln('Два ');

3: writeln('Три ');

4: writeln('Четыре')

elsewriteln('Введено другое число')

end;

readln

end.

Программа 2. Определение номера квартала по введенному номеру месяца

Program Digit3;

var

Num:integer;

begin

write('Введитеномермесяца:');

readln(Num);

case Num of

1,2,3 :write!n('Первыйквартал');

4,5,6 :writeln('Второй квартал');

7..9: writeln('Третий квартал');

10..12: writeln('Четвертый квартал')

elsewriteln('Некорректныйввод')

end;

readln

end.

Программа 3.Введите трехзначное целое числоN. Определить, равняется ли сумма цифр числаN, заданному числу M.

Program Digit5;

const M=5;

var

N, M: integer;

begin

write('Введите трехзначное число:');

readln(N);

а:= N div 100;

b:= N – a*100;

c:=b div 10;

d:=c mod 10;

S:=a+c+d;

If S=M Then WriteLn(‘Summa cifrchisla’, N, ‘=’,M) Else WriteLn(‘Summa cifrchisla’, N, ‘ne ravno’, M)

end.
ЗАДАНИЕ 2. Выполнить программы на языке программирования TurboPascal самостоятельно.


  1. По заданному номеру дня недели (целому числу от 1 до 7) получить число уроков в этот день.

  2. Составить алгоритм и программу для вычисления функции:



  1. Введите два любых числа. Если они четные, посчитать их произведение, если они нечетные – сумму, в противном случае посчитать их частное.

Контрольные вопросы

  1. Определите значение выражения: if (x>0) and (x<1) theny:=x*xelsey:=x-2 при х=0,2; 3; 0

  2. Определитезначениевыражения: if (a<0) or (a>1) then y:=a*a else y:=a-2 при a=0,2; 3; 0

Лабораторная работа 3

Тема: Составление программ циклической структуры

Цель: научиться составлять программы с использованием операторов For…, While …

Оборудование: ПК, ПО TurboPascal
ЗАДАНИЕ 1. Составить предложенные программы на языке программирования TurboPascal. Ответить на контрольные вопросы.

Программа 1. Вывод на экран кубов чисел от 11 до 5

Program Test2;

var

N: integer;

begin

for N:=11 downto 5 do

write(N*N*N:5);

writeln;

readln

end.

Контрольные вопросы

  1. В каких случаях используется конструкция FOR … DOWNTO .. DO, авкаких - FOR … TO .. DO

  2. Для каких целей используется оператор readln перед последним оператором END?

  3. Объясните, для чего в записи WRITE(N*N*N:5); используется:5?

Программа 2. Вычисление суммы чисел от 6 до 10

Program Test4:

var

N: integer;

S: integer;

begin

S:=0;

for N:=6 to 10 do

S:=S + N;

writeln('Суммачисел=', S:6);

readln

end.

Контрольные вопросы

  1. Для каких целей в программе заведена переменная N, S?

  2. Объясните, для чего в записи WRITELN('СУММА ЧИСЕЛ=', S:6); используется S:6?

Программа 3. Из чисел от 10 до 99 вывести те, сумма цифр которых равна S(0
{Обозначим: k - это просматриваемое число; p1 - это первая цифра числа k, р2 - это вторая цифра числа k; s - это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма p1 и р2 будет равна s.}
program prim2;

usescrt;

var k,n,p1,p2,s:integer;

begin

clrscr;

writeln(' целоечисло n=');

readln(n);

for k:=10 to 99 do

begin

p1:=k div 10;

р2:=к mod 10;

s:=p1+p2;

if s=n then writeln('k= ',k);

end;

end.

Контрольные вопросы

  1. Что обозначают операции div и mod?

  2. Для каких целей используется оператор clrscr?


ЗАДАНИЕ 2. Выполнить программы на языке программирования TurboPascal самостоятельно.


  1. Выведите на экран монитора последовательность

  2. Вычислите р = 15! (15 факториал).

  3. Составить программу вычисления значения выражения s=ln(12)+ln(11)+ln(10)+... +ln(1).

Лабораторная работа 4

Тема: Составление программ усложненной структуры

Цель: научиться составлять программы с использованием операторов Window, TextBackGround

Оборудование: ПК, ПО TurboPascal
ЗАДАНИЕ 1. Составить предложенные программы на языке программирования TurboPascal. Ответить на контрольные вопросы.

Программа 1. Данная программа по очереди откроет четыре окна, и каждое из этих окон «зальется» разным фоновым цветом:

Uses CRT;

Begin

Window (1, 1, 40, 12)

TextBackGround(White); ClrScr;

Window (41, 1, 80, 12);

TextBackGround (Red); ClrScr;

Window (1, 13, 40, 25);

TextBackGround (LightRed); ClrScr;

Window (41, 13, 80, 25);

TextBackGround (Green); ClrScr;

End.

  1. Составить программу, протестировать, продемонстрировать преподавателю.

  2. Измените цвет полученных окон.

  3. Внесите изменения в программу: перед командой End вставьте следующий блок команд

Repeat Until KeyPressed;

Window(1,1,80,25);

TextBackGround(black); ClrScr;

  1. Сделайте вывод, что изменилось в работе новой программы.

Программа 2. По следующей программе на белом фоне в середине экрана будут выведены номера первых пятнадцати цветов, и каждый номер будет того цвета, который он обозначает:

Uses CRT;

VarI : Byte;

Begin

TextBackGround (White);

ClrScr;

GoToXY (1, 12);

ForI := 0 To 14 Do

Begin

TextColor (I);

Write (I : 5)

End

End.

Запишите данные в тетрадь.

Контрольные вопросы

  1. Для чего подключаем в программе модуль CRT?

  2. В чем состоит отличие операторов TextBackGroundиTextColor?

  3. Для чего предназначен оператор GoToXY?


ЗАДАНИЕ 2. Составить программы и определить результат. Данные занести в тетрадь. Ответить на вопрос.

Программа 1. Определить, что будет напечатано следующей программой, если в качестве исходных данных заданы числа 1.0 и -2.0:

Program Roots;

Var B, C, D : Real;

Begin

Read (B, C);

D :=Sqrt (Sqr9B) – 4 * C);

WriteLn (‘x1 =’ , (-B+D)/2,

x2 =’ , (-B-D)/2)

End.

Программа 2. Определить, что будет напечатано следующей программой при последовательном введении значений 3.4 и 7.9:

Program Less;

VarX : Real; T : Boolean;

Begin

Read (X);

T :=X

Read (X);

T := T And (X

WriteLn (T)

End.

Программа 2. Определить, что будет напечатано следующей программой при последовательном введении значений 36, -6 и 2345:

Program ABC;

VarA, B : Integer;

Begin

Read (A, B, A);

WriteLn (A, B : 2, A:5)

End.

Контрольные вопросы

  1. Что обозначают следующие функции Round и Trunc ?

ЗАДАНИЕ 3. Составь программы, протестировать. Результат записать в тетрадь и продемонстрировать преподавателю.

Программа 1. Составить программу вычисления суммы двух целых чисел, которая будет вести диалог с пользователем в следующем виде (вместо многоточий – вводимые и выводимые числа):

Введите два слагаемых

а = .........................

b= ........................

Результат вычислений:

a+b = ....................

Программа 2.В ходе лечебного голодания масса пациента за 30 дней снизилась с 96 до 70 кг. Было установлено, что ежедневные потери массы пропорциональны массе тела. Требуется вычислить, чему была равна масса пациента через K дней после начала голодания для k=1,2,..., 29.

VarI : Byte;

P, Q : Real;

Begin

P := 96;

Q :=Exp (1/30 * Ln (70/96));

ForI := 1 To 29 Do

Begin

P := Q*P;

WriteLn (I, ‘-q день –‘, P : 5 : 3, ‘ кг’)

End

End.
Лабораторная работа 5

Тема: Обработка одномерных массивов

Цель:приобрести практические навыки работы с одномерными массивами

Оборудование: ПК, ПО TurboPascal
Методические указания.

Массивом называется последовательность конечного числа величин одного типа, обозначенных одним именем, но с различными индексами. Элементы массива являются индексированными переменными, которые упорядочены по значениям индексов. Переменная с индексом обозначается именем массива со списком индексов, заключенных в квадратные скобки. Например, задан массив

1.4 15.8 - 8.54 0.125 - 3.0

Обозначим массив именемС, тогда

С: = 1.4; С[2]: = 15.8; С[3]: = - 8.54; С[4]: = 0.125; С[5]: = - 3.0.

Если массив состоит из переменных с одним индексом, то он называется одномерным. В противном случае массив называется многомерным. Если в программе используется массив, то он должен быть описан либо в разделе переменных VAR, либо в разделе типов TYPE.

Описание одномерного массива в разделе переменных VAR имеет вид
VARимямассива: ARRAYOF P2;
Здесь ARRAY и OF – служебные слова;Р1 – тип индекса, в качестве которого может быть простой тип, кроме REAL и INTEGER; P2 – тип элемента массива, например:
VARС: ARRAYOF REAL;
где С – имя массива, элементы которого имеют тип REAL, индекс изменяется от 1 до 8.

Описание массивов в разделе описания типов TYPE обычно осуществляется в два этапа. Сначала в разделе типов TYPE указывается тип массива, а затем в разделе описания переменных VAR указываются массивы, относящиеся к данному типу:

TYPE имятипа= ARRAY [P1] OF P2

VAR имя массива: имя типа;

ЗАДАНИЕ 1. Набрать программу, получить результат, данные занести в тетрадь.

Даны два массива чисел А и В (по 15 чисел в каждом ряду). Сформировать новый массив С, элементы которого определяются по правилу сi= ai + bi

Program Massivi;

Uses CRT;

Begin

type Mas = Array[1..10] of integer;

Var

a, b, c: Mas;

i: byte;

Begin

ClrScr;

{Vvodimelementimassivov a i b}

For i:=1 to 10 do

Begin

Write('A[', i, ']='); Read(a[i]);

Write(' B[', i, ']='); Read(b[i]);

Read

End;

{Formiruemmassiv C}

For i:=1 to 10 do

Begin

C[i]:=A[i]+B[i];

Write(' C[', i, ']=',C[i])

End

End.
Контрольные вопросы

  1. Объясните, что обозначает запись typeMas = Array[1..10] ofinteger?


ЗАДАНИЕ 2. Составить программу и определить результат. Данные занести в тетрадь. Сформулировать условие задачи, решением которой будет являться составленная программа.

Программа 1.

Program Massivi;

Uses CRT;

Begin

type Mas = Array[1..5] of integer;

Var

x, y : Mas;

i: byte;

Begin

ClrScr;

{Vvodimelementimassiva x}

For i:=1 to 5 do

Begin

Write('X[', i, ']='); Read(X[i]);

End;

{Formiruemmassiv C}

For i:=1 to 5 do

Begin

Y[i]:=SQR(A[i]);

Write(' C[', i, ']=',C[i])

End

End.

Программа 2.

Program Massivi;

Uses CRT;

Begin

type Mas = Array[1..5] of Real;

Var

n, m : Mas;

i: byte;

Begin

ClrScr;

{Vvodimelementimassiva n}

For i:=1 to 5 do

Begin

Write('N[', i, ']='); Read(N[i]);

End;

{Formiruemmassiv C}

For i:=1 to 5 do

Begin

M[i]:=Trunc(N[i]);

Write(' M[', i, ']=',M[i])

End

End.

Введите значения

N[1]=3.5

N[2]=7.58

N[3]=3.5567

N[4]=93.52

N[5]=43.22

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

  2. Исправьте в программе функцию Trunc на Round. Полученный результат запишите. Что изменилось в результатах работы программы.

ЗАДАНИЕ 3. Составьте программу. Результат записать в тетрадь и продемонстрировать преподавателю.

Задача 1. Даны два массива чисел А и В (по 8 чисел в каждом ряду). Сформировать новый массив С, элементы которого определяются по правилу di= ai2 + 2bi

Задача 2. Дан массив А (8 чисел). Сформировать новый массив А, элементы которого определяются по правилу: если номер четный, то di= ai2, иначе di= 2аi
Лабораторная работа 6

Тема: Обработка двумерных массивов

Цель:Сформировать понятие двумерного массива числового типа; научиться осуществлять обращение к элементам двумерного массива, ввода и вывода массива, составления алгоритмов обработки массивов.

Оборудование: ПК, ПО TurboPascal


Задание 1.Сформировать двумерный массив 34, заполнить его элементами с клавиатуры. Распечатать сумму элементов А23 и А43.

usescrt;

const n=3; m=4;

var a:array[1..n,1..m] of integer;

i,j:integer;

begin

clrscr;

For i:=1 to n do

Begin

For j:=1 to n do

Begin

Write (‘Vvedite A[‘ , I , ‘,’ , j , ‘]=’);

ReadLn(A[i,j]);

End;

End;

For i:=1 to n do

Begin

For j:=1 to n do

Write (‘ ‘, A[i,j]);

WriteLn;

End;

Write ( A[2,3]+ A[4,3]);

End.
  1   2   3   4