Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1346 (Pascal)

.pdf
Скачиваний:
16
Добавлен:
09.04.2015
Размер:
840.58 Кб
Скачать

Министерство путей сообщения Российской Федерации

Департамент кадров и учебных заведений

САМАРСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ПУТЕЙ СООБЩЕНИЯ

Кафедра информатики

«ИНФОРМАТИКА»

Методические указания к выполнению лабораторных работ по дисциплине

для студентов технических специальностей дневного обучения

Составители: Юшков С.А.

ЕрмоленкоТ.И.

Самара – 2004

УДК 681. 3. 01

Информатика: Методические указания по выполнению лабораторных работ по дисциплине для студентов технических специальностей дневного обучения, - Самара: СамГАПС,2004.- 20 с.

Утверждено на заседании кафедры информатики 01.03.2004г., протокол № 13. Печатается по решению редакционно-издательского совета академии.

Данные методические указания содержат примеры выполнения лабораторных работ с описанием основных конструкций алгоритмического языка программирования Pascal в пакете TurboPascal. Указания предназначены для студентов технических специальностей дневной формы обучения.

Составители:Сергей Анатольевич Юшков Татьяна Ивановна Ермоленко

Рецензенты: А.В.Авсиевич, доцент кафедры АСОИиУ, к.т.н.

И.С.Макарова, доцент кафедры Высшая математика СамГУ, к. ф.-м. н.

Редактор: И.А.Шимина

Компьютерная верстка: Р.Р.Абрамян

Подписано в печать 21.06.04. Формат 60х90 1/16 Бумага писчая. Печать оперативная. Усл. п. л. Тираж 250 экз. Заказ № 100.

Самарская государственная академия путей сообщения, 2004

2

Введение

Основное назначение методических указаний - кратко, доступно, на конкретных примерах показать применение основных элементов языка программирования Pascal - алгоритмических конструкций, операторов, стандартных процедур и функций.

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

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

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

3

1. Требования к оформлению отчёта по лабораторной работе

Отчет должен содержать следующие пункты:

1.Условие задачи.

2.Постановка задачи.

3.Блок-схема алгоритма.

4.Текст программы на языке PASCAL.

5.Результаты расчетов (входные и выходные данные).

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

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

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

2. Лабораторная работа №1. Табуляция функции

Выполнение лабораторной работы рассмотрим на конкретном примере.

2.1.Условие задачи:

Найти и вывести на экран все значения функции P 24.97Sin2 2K на отрезке [A,B] с шагом D. Подсчитать количество значений функции, больших 10.

2.2.Постановка задачи:

1.Вводимые переменные: A, B, D – вещественные числа – начало отрезка, конец отрезка, шаг.

2.При вводе данных необходимо учитывать, что переменные A,B,D должны соответствовать следующим условиям: B>A и D>0. Если данные не соответствуют этим условиям, необходимо повторить ввод новых данных.

3.Для решения этой задачи целесообразно организовать цикл. Переменная цикла К должна изменяться в пределах от К=А до К=В с шагом D.

Kнач A ,

Kслед K

С – количество,

 

1

2

2K

 

(

Ln(Sin

P 24.9 e

 

 

 

7

 

 

D, пока K B .

целое. Cнач 0 , Cслед С 1 при ))

P 10

4. Выводимые переменные: К, Р, С– таблица:

Аргумент=... Значение функции=...

Аргумент=... Значение функции=...

Количество значений функции, больших 10=…

4

2.3.Алгоритм:

 

Начало

 

 

A, B, D

 

Нет

B>A

Да

 

 

 

D>0

 

C=0

 

 

K=A

 

 

Нет

Да

 

K B

 

 

C

P=f(K)

 

 

K, P

 

конец

 

 

Нет

P>10

Да

 

 

 

 

C=C+1

 

K=K+D

 

2.4.Текст программы:

Program TAB;

{Составил .........}

Var A,B,D,K,P:Real; { описаниe переменных} C:Integer;

Begin {начало программы}

Repeat {Оператор цикла с постусловием. Организуется цикл выполнения перечня операторов, заключенных между словами repeat и until до тех пор, пока не будет выполнено условие, указанное после until.}

WriteLn ('Введи начало отрезка, конец отрезка, шаг'); {Оператор вывода на экран строки заключенной в апострофах.}

ReadLn (A,B,D); { Ввод числовых данных. Состоит из переменных в скобках, которыми будут обозначены вводимые данные.}

Until (B>A) and (D>0);

5

C:=0;

K:=A;

While K<=B do {Организуется цикл для нахождения значений заданной функции, вывода на экран таблицы, подсчета количества Р>10 до тех пор пока выполняется условие, указанное после управляющего слова while.}

Begin {начало цикла}

P:=24.9*exp(ln(sqr(sin(2*k)))/7);

WriteLn ('Аргумент=',K:6:2,'Значение функции='’,P:8:2); if P>10 then C:=C+1;{ Проверка условия.}

K:=K+D;

End; {конец цикла while}

Write ('Количество значений функции, больших 10=',C); End. {конец программы}

2.5.Результаты расчетов:

Введи начало отрезка, конец отрезка, шаг 1 3 0.5 Аргумент=1.00 Значение функции=24.23 Аргумент=1.50 Значение функции=14.23 Аргумент=2.00 Значение функции=22.99 Аргумент=2.50 Значение функции=24.60 Аргумент=3.00 Значение функции=17.30 Количество значений функции, больших 10=5

3. Лабораторная работа №2. Одномерные массивы

Номер элемента массива:

1

2

……………

j …n

Элемент массива:

186

155

4

28.6

 

….

Примеры. Описание массивов:

Var b:array [1..28] of real; b:array [45..61] of byte;

Присвоение значений элементам массива

B[1]:=186;B[19]:=143.8;B[j]:=28.6; B[j+1]:= a+c;

Выполнение лабораторной работы рассмотрим на конкретном примере.

3.1.Условие задачи:

Дано 40 оценок, найти среднюю.

3.2.Постановка задачи:

1) Вводимые переменные: Оc[i] – оценка.

Проверка: при вводе данных необходимо учитывать, что

0 Oc[ i ] 5 , если данные не соответствуют этим условиям, необходимо повторить ввод новых данных.

6

2) Промежуточные переменные: i – номер оценки Sum – сумма оценок 3) Выводимые переменные: SR – средняя оценка.

Для решения задачи потребуются следующие формулы.

Sum = Sum + Oc[i];

Sumнач

= 0; SR = Sum/40

Результат: SR = …

 

 

 

 

 

 

3.3. Алгоритм:

 

 

 

 

 

 

 

 

 

 

 

начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'введи оценку'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oc[i]

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

Oc[I ] 5

да

 

 

 

i=i+1

да

i>40

 

Sum=0

i=40

Sum=Sum+Oc[i]

i=i-1

нет

нет

i<1

да

SR=Sum/40

конец

SR

7

3.4.Текст программы:

Program OCEN;

{составил ...}

var Oc : array[1..40] of integer; Sum,i : integer;

Sr : real; begin

for i:=1 to 40 do { Выполняется цикл(повтор) одного оператора, стоящего за управляющим словом do. Количество повторений равно разности между значениями переменной цикла после слова to и слова for, увеличенной на единицу. При каждом повторении переменная цикла изменяется с шагом +1.}

begin repeat

write ('введи оценку '); readln (Oc[i]);

until (Oc[i]>0) and (Oc[i]<=5); end;

Sum:=0;

for i:=40 down to 1 do {Выполняется цикл(повтор) одного оператора, стоящего за управляющим словом do. При каждом повторении переменная цикла изменяется с шагом –1.}

Sum:=Sum+Oc[i];

SR:=Sum/40;

Write ('средняя оценка=',Sr:4:2); end.

3.5.Результаты расчетов:

Введи оценку 4 Введи оценку 3

..........................

Введи оценку 5 Средняя оценка=3.05

Другие возможные варианты:

1.Накапливающее умножение Р - произведение

…………………….

p:=1;

for i:=1 to 40 do p:=p Oc[i];

2.Подсчёт количества

........................

kol:=0;

for i:=1 to 40 do begin

if St>175 then

8

kol:=kol+1;

end;

write (‘kol=’,kol);

4. Лабораторная работа №3. Двухмерные массивы

№ строки элемента

Номер столбца элемента

 

 

 

1

2

10

m

1

 

 

 

 

 

 

2

 

 

 

1048

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

Пример:

запись элементов массива

Z[2,10]:=1048; Z[i,k]-

Var Z:array [1..9,1...8] of word;

Выполнение лабораторной работы рассмотрим на конкретном примере.

4.1.Условие задачи:

Дана матрица 9х9, элементы которой расчитываются по формуле: Elem[i,k] = i*sin(k), где i= № строки, k= № столбца этого элемента.

Найти: наибольший элемент - в каждой строке, наименьший элемент - в каждом столбце. Результат записать в текстовый файл.

4.2. Постановка задачи:

1)Elem[i,k] = i*sin(k) i - номер строки

k – номер столбца

Max[i] – наибольший элемент в каждой строке. Min[k] – наименьший элемент в каждом столбце.

LM – обозначим имя файла в программе (логическое имя файла) MATR.TXT – физическое имя файла (на диске)

4) Результаты:

max

Матрица

min

9

3. Алгоритм:

начало

i=1

k = 1

Elem[i,k] = i*sink

k = k+1

да

нет

k>9

i = i+1

да

i>9

нет

 

 

i=1

Max[i]=Elem[i,1]

 

 

 

 

 

 

нет

k = 2

 

да

 

 

 

 

 

 

 

 

 

 

 

Max[i]<Elem[i,k]

Max[i]=Elem[i,k]

нет

k = k+1

да

 

 

 

 

 

 

 

 

k>9

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]