Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник лабораторных работ черновик.rtf
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.72 Mб
Скачать

Программирование циклов с постусловием с использованием конструкций Repeat..Until.

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

Литература : В.П. Попов TURBO PASСAL .для школьников. Версия 7.0.

Краткие теоретические сведения:

При подготовке к лабораторной работе следует повторить назначение

основных этапов обработки программ в среде TURBO PASCAL, а также изучить структуру программы на языке Паскаль, назначение и форматы операторов цикла

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

Оператор цикла с постусловием ( цикл REPEAT)

REPEAT < операторы > Until < условие >; Данный цикл выполняется до тех пор , пока условие не станет истинным( то, есть в отличии от цикла While , цикл Repeat повторяется пока условие ложно).

Порядок выполнения работы:

  1. Получить допуск к работе у преподавателя.

  2. Осуществить вызов системы TURBO PASCAL

  3. Ввести текст программы.

  4. Записать исходный модуль в файл на диске

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

  6. Занести результаты расчета в отчет

  7. Выйти из системы TURBO PASCAL.

Содержание отчета:

  1. Цель работы

  2. Задание к лабораторной работе

  3. Блок-схема алгоритма решения задачи

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

  5. Запись команд сеанса работы.

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

  7. Ответы на контрольные вопросы

  8. Вывод по результатам проделанной работы

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

  1. Назначение и формат оператора присваивания.

  2. Схема простого циклического процесса.

  3. Операторы цикла REPEAT в языке Паскаль, особенности использования.

Задание к лабораторной работе

Вычислить значения функций, используя различные циклические алгоритмы:

  1. Y=AX2 +BX+C, если A=2; B=5; C=7; X изменяется от 0 до 27 с шагом 3.

  2. Z=AX3 +B , если А=4; B=3, X изменяется от 2 до 12 с шагом 2

  3. T=X2 + Y2, если Y=10; Х изменяется от 0 до 20 с шагом 4

  4. X= Ln (A+Y), если A=0.5; Y изменяется от 0.5 до 10.5 с шагом 1.5

  5. Y=ex+a, если A=0.5 X изменяется от 0.5 до 1.1 с шагом 0.2

  6. Y=e|x+a|, если А=0.7; Х изменяется от -7 до 7 с шагом 2

  7. Z=2 x+a ,если А=2; Х изменяется от -1 до 9 с шагом 2

  8. S=SIN2 (AX+B) ,если A=0.5; B=2 X изменяется от 2 до 8 с шагом 2.

  9. P=|X3-Y3|,если Y=5; X изменяется от 0 до 30 с шагом 5

  10. , если А=0.6; Х изменяется от 1 до 31 с шагом 3

  11. C=1+COS2 (AX) ,если А=0.1; Х изменяется от 0 до 10 с шагом 2

  12. P= ,если A=2;Х изменяется от 7 до15 с шагом 2.

  13. T=SIN X+COS2 AX ,если А=3; Х изменяется от -1 до 21 с шагом 2.

  14. C=еax +AX2 ,если А=0.8; Х изменяется от 0.2 до 1.4 с шагом 0.2

  15. К=COS2(BX+A) ,если B=0.5; A=2; X изменяется от 2 до 18 с шагом 2.

ПРИМЕЧАНИЕ: При выводе результатов предусмотреть печать идентификаторов переменных

При программировании степенной функции использовать формулу:

Xa = ealnx

ЛАБОРАТОРНАЯ РАБОТА № 9.

Формирование и обработка одномерных массивов.

Цель работы: Приобрести навыки использования операторов ввода-вывода при обработке одномерных массивов.

Литература : В.П. Попов TURBO PASСAL .для школьников. Версия 7.0.

Краткие теоретические сведения:

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

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

Описание массива имеет следующий вид :

var <имя массива > :array [ n1..n2 ] of < тип элементов > ;

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

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

var a :array [0..10] of integer ; {массив из 11элементов целого типа }

var b : [-5..9] of real ; { массив из 15 элементов вещест. типа }

При обращении к элементам массива в качестве индексов можно использовать константы, переменные и выражения. Например :

a[0] :=10

b[i*2] :=3.1415926535

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

Порядок выполнения работы:

  1. Получить допуск к работе у преподавателя.

  2. Ввести текст программы.

  3. Провести отладку программы.

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

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

1.Понятие одномерного массива и способы его описания.

2.Организация ввода одномерных массивов на языке Паскаль.

3.Вывод массивов на языке Паскаль.

4.Алгоритм нахождения суммы и произведение элементов одномерного массива.

5.Алгоритм нахождения наибольшего значения элемента одномерного массива.

6. Алгоритм нахождения наименьшего значения элемента одномерного массива.

Задание к лабораторной работе:

Записать текст программы , провести отладку, перечислить все допущенные в программах ошибки. Устранить их.

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

var m: array[1..n] of real ;

sum, const n = 10

sr,delta: real;

i, num:integer;

begin

writeld (‘ введите элементы массива ‘) ;

for i : =1 to n do

realdln (m[i]) ;

{вычислите суммы элементов и среднего арифметического }

sum :=0

for i : = 1to n do

sun : =sun + m [i]

sr : =sun/n

{ вычислите номера элемента ,ближайшего к среднему}

num : =1

delta :=abc(sr-m[1]

for i :=2 to n do

if delta <abc (sr-m[i] )

Then begin

Delta :=abc (sr-m[i] )

Num :=i

End

Writeln (‘среднее=’,sr,’ элемент ,ближайший к среднему =’, m[num])

End

2. Пример программы для заполнения массива из 20 элементов целыми случайными числами в диапазоне от 0 до 99. и сортировки элементов массива по возрастанию. Для получения случайных чисел используется функция random (n) и процедура randomize ,где n задает диапазон случайных чисел ( случайные числа генерируются в диапазоне от 0 до n-1). Оформить вывод сортированного массива.

Const n= 20

Var m :array [1..n] of integer ;

I,j temp for i :=1 to n do

:integer ;

Begin

Rendomize ;{инициализация генератора случайных чисел}

m[i] :=random (100) ;{заполнение массива случай. числами в диапазоне от 0 до 99}

{сортировка элементов массива }

for i : = 1to n do

for j:=i+ 1to n do

if m[i]>m[j] then begin

temp :=m[i];m[i] :=m[j];m[j]:=temp

end

Самостоятельная работа по вариантам:

  1. В массив А[N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.

  2. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

  3. Дана последовательность целых чисел a1,a2,a3,…,an..Выяснить какое число встречается раньше – положительное или отрицательное.

  4. Дана последовательность действительных чисел a1,a2,a3,…,an. Выяснить будет ли она возрастающей.

  5. Дана последовательность действительных чисел a1,a2,a3,…,an. Создать массив из четных чисел этой последовательности. Если таких нет, то выдать сообщение об этом факте.

  6. Дана последовательность действительных чисел a1,a2,a3,…,an. Заменить все её члены, большие данного Z, этим числом. Подсчитать количество замен.

  7. Дан массив действительных чисел, размерность которого N. Подсчитать количество отрицательных, положительных, нулевых элементов.

  8. Дана последовательность действительных чисел a1,a2,a3,…,an.Поменять местами наибольший и наименьший элементы.

  9. В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах.

  10. Задана последовательность из N вещественных чисел. Определить, сколько среди них чисел меньших К, равных К и больше К.

  11. Задан массив действительных чисел. Определить , сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций , в которых происходит смена знака.

  12. Задана последовательность N целых чисел. Вычислить сумму элементов массива, порядковые номера которых совпадают со значением этого элемента.

  13. Заполнить массив из N элементов с начальным значением заданным a[0]#0, по принципу A[i]=A[I div 2 ]+A[I-1].

  14. При поступлении в вуз абитуриенты, получившие двойку на первом экзамене, ко второму не допускаются. В массиве A[n] записаны оценки экзаменующихся, полученные на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.

ЛАБОРАТОРНАЯ РАБОТА № 10

Сортировка массивов методом «пузырька»

Цель работы: Приобрести навыки использования алгоритмов сортировки при обработке одномерных массивов.

Литература : В.П. Попов TURBO PASKAL .для школьников. Версия 7.0.

Краткие теоретические сведения:

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

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

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

Описание массива имеет следующий вид :

var <имя массива > :array [ n1..n2 ] of < тип элементов > ;

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

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

var a :array [0..10] of integer ; {массив из 11элементов целого типа }

var b : [-5..9] of real ; { массив из 15 элементов вещест. типа }

При обращении к элементам массива в качестве индексов можно использовать константы, переменные и выражения. Например :

a[0] :=10

b[i*2] :=3.1415926535

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

Для автоматизации процесса отладки можно использовать типизированное описание массива в блоке CONST

Формат :

Имя массива : описание массива = ( список значений элементов массива);

Пример

Mass: array [1..7] of byte = ( 1,5,6,8,3,5,9);

WW : array [1..7] of real = ( 11.34, -67.5 , 987.6 , 8.00 , 3.98 , -5.00 , -7.09);

Заполнение массива исходными данными осуществляется несколькими способами: вводом с клавиатуры, счетчиком случайных чисел, и вычислением с помощью формулы.

Например :

For i:=1 to 28 do

Begin write(‘ a[‘, I,’]=’ );read(a[i] ); end;{ с клавиатуры}

Randomize;

For t :=1 to 20 do ter[t]:=random(40); { счетчиком случайных чисел}

H:=10;

For d:=1 to h do begin dip [d]:=d*d; { формулой }

При решении задач массивы используются очень часто, и зачастую эти массивы необходимо отсортировать по возрастанию или по убыванию. Существуют много различных алгоритмов сортировки. Одним из самых популярных является- «пузырьковый» метод, который основан на том, что в процессе исполнения алгоритма более «легкие» элементы постепенно «всплывают». Особенностью данного алгоритма является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по убыванию состоит в последовательных просмотрах снизу вверх (от начала к концу) массива М. Если соседние элементы таковы, что выполняется условие, согласно которому элемент справ больше элемента слева, то выполняется обмен этих элементов.

Порядок выполнения работы:

  1. Получить допуск к работе у преподавателя.

  2. Ввести текст программы.

  3. Провести отладку программы.

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

Содержание отчета: