Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





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

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

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

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

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

Схема алгоритма и программа на языке Паскаль.

Результаты расчета

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

Алгоритм обменной сортировки одномерного массива.

Алгоритм сортировки вставками.

Алгоритм сортировки выбором

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

 

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

Пример программы для заполнения массива из 20 элементов целыми случайными числами в диапазоне от 0 до 99. и сортировки элементов массива по возрастанию.

Const n= 20

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

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

Begin

Writeln (‘исходный массив:’);

For I:=1 to n do write (M[I]), ‘ ‘); Writeln;

A:=0;

For I:=2 to n do {сортировка «пузырьковым» методом по невозрастанию}

Begin

For J:=n downto I do

Begin

A:=A+1;

If M [J-1]<M[J] then {если элемент справа больше элемента слева, то «вытеснить» его влево- пузырек «всплывает»}

Begin

K:=M[J-1]; {обмен значениями этих элементов}

M[J-1]:=M[J];

M[J]:=K;

{печатать текущее состояние массива после каждой перестановки}

For L:=1 to n do Write (‘ ’, M[L]);

Writeln (‘Число итерации=’,A);

End;

End;

End; { завершение сортировки}

End.

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

Дан одномерный массив целых чисел. Требуется отсортировать его так, чтобы его элементы были расположены в порядке неубывания (а[i] <= a[i+1])

Написать программу, выполняющую сортировку введенного массива. Ввод содержимого массива осуществляется одним из 2 способов:

- через датчик случайных чисел;

- через типизированное описание массива в блоке CONST

 

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

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

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

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

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

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

Кроме одномерных массивов,рассмотренных выше,в Паскале можно использовать многомерные массивы.двумерные массивы (матрицы)описываются следующим образом:

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

где n1..n2 - диапазон изменения первого индекса,n3..n4-диапазон изменения второго индекса.

Например:

var a: array [1..5,1..10] of integer;

матрица из 50 элементов (5 строк,10 столбцов) целого типа. при обращении к элементам матрицы индексы указываются через запятую. например,a[1,1].

1. Пример программы для формирования и вывода матрицы 10x10 Aij=i.* j, и определения сумм ее диагоналей.

const n=10

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

i,j,sl,s2: integer;

begin

for i:=1 to n do begin

for j: =1 to n do begin

a[i;j]: =i*j {формирование матрицы формулой}

write (a[i,j]:5); {вывод элементов матрицы на экран}

end;

writeln {перевод строки }

end;

sl:=0;s2:=0;

for i=1to n do begin

sl:= sl +a[i,i] {сумма элементов главной диагонали}

s2:=s2+a[i,n+1-i]; {сумма эл-тов побочной диагонали };

end;

writeln (‘sl=’,s2,’s2=’,s2);

end.

 

2. Пример программы для заполнения матрицы размером 5x7 случайными числами в диапазоне от -100 до 100 и определения количества отрицательных элементов в каждой строке.

 

const n1 =5;n2=7;

var m: array [1..n1,1..n2] of integer;

n: array [1..n1] of integer;

i;j: integer

begin

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

for i: =1 to n1 do begin

for j:= 1 to n2 do begin

a[i,j]: = random (201)-100 {формирование матрицы }

write (a[i,j]:5) { вывод элементов матрицы }

end

writeln; { перевод строки}

end;

{определение количества отрицательных элементов в строках }

for i:=1 to n1 do begin

n[i]:=0;

for j:=1 to n2 do

if m[i,j]<0 then n[i]: =n[i] +1;

end;

for i: =1to n1 do

writeln (‘количество отриц. Элементов в ‘,i,’ строке =’,n[i]);

end.

 

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

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

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

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

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

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

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

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

3.Вывод текстовой информации на языке Паскаль.

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

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

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

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

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

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

Исходная матрица: МАТРИЦА ПО

СТРОКАМ

 

Результирующая матрица: МАТРИЦА ПО

СТРОКАМ

 

Варианты заданий:

 

1. Вычисление количества элементов матрицы, больших 1 и меньших 5

2. Вычисление среднего арифметического отрицательных элементов матрицы

3. Вычисление суммы элементов нечетных строк матрицы

4. Вычисление количества положительных элементов в четных строках матрицы

5. Вычисление суммы элементов матрицы

6. Вычисление количества отрицательных элементов матрицы

7. Вычисление суммы положительных элементов матрицы

8. Вычисление суммы элементов нижнего левого треугольника матрицы

9. Вычисление суммы элементов верхнего правого треугольника матрицы

10. Вычисление суммы элементов четных строк матрицы

11. Вычисление суммы элементов нечетных строк матрицы

12. Вычисление количества отрицательных элементов четных строк матрицы

13. Вычисление количества элементов матрицы, кратных 5

14. Вычисление суммы элементов главной диагонали матрицы.

15. Определение минимального значения среди положительных элементов матрицы.

 

Лабораторная работа № 13

Подпрограммы- функции.

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

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

 

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

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

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

Функции (Function();) –это процедуры особого характера, результатом работы которой является некоторое значение, с именем функции связано ее значение.Функция определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Funcion, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой блок, по структуре аналогичный программе:

Function <имя> (формальные параметры): <тип результата>;

Count….;

Type…;

Var…;

Begin

<операторы>

End;

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

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. Например программа вычисления выражения Z=(A2+A-3)/2*AM, в которой возведение в степень выполняется функцией Step:

 

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

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

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

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

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

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

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

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

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

1. Какие виды подпрограмм, существующие в TURBO PASCAL вы знаете?

2. Опешите последовательность событий при вызове функции?

3. Глобальные и локальные переменные.

4. Что такое итерационный цикл, число итераций, сходимость итерационного цикла?

5. Что такое рекурсия, рекурсивный алгоритм? Примеры применения рекурсивных алгоритмов.

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

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

 

1 x=0.7, E=10-4

 

2 E=10-4

3 x=1.5, E=0.5 *10-3

4

 

6

Даны числовой ряд и некоторое число ξ. Найти сумму тех членов ряда, модуль которых больше или равен заданному ξ. Общий член ряда имеет вид:

 

7. 8. 9.

 

10. 11. 12.

 

13. 14. 15.

 

 

Лабораторная работа № 14.

Подпрограммы -процедуры

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

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

 

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

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

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

Заголовок процедуры. Procedure(); Формальные параметры бывают параметрами-значениями и параметрами- переменными. Формальные параметры: Параметры-значения, которые передают в процедуру значение для обработки, после выполнения процедуры не возвращает своего значения. Параметр – переменная, при возвращении в основную программу изменяет свое первоначальное значение. Тело процедуры/функции ограничивается зарезервированными словами BEGIN и END. Переменной называют элемент программы, которой предназначен для хранения, коррекции и передачи данных внутри ее. Раздел объявления переменных начинается зарезервированным словом VAR, вслед за которым располагаются конкретные переменные. Для объявления переменной. Локальные переменные, используемые в подпрограмме. Переменные называются локальными, когда они действуют только в одной процедуре или функции.

Итерационным вычислительным процессом называется такой циклический процесс, который продолжается до тех пор, пока разность между соседними, уточняемыми на каждом шаге цикла (итерации) значениями, не окажется меньше или равной некоторой заданной величине.

Решение об окончании вычислений принимается тогда, когда результаты счета(значение функции, искомые величины) на очередной итерации (цикле) отличаются от предыдущих или эталонных не более, чем на некоторую, наперед заданную, величину (ξ – эпсилон), т.е. найдены с заданной точностью.

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

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

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

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

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

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

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

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

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

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

6. Формат описания подпрограммы-процедуры.

7. Обмен аргументами и результатами между основной программой и процедурой через параметры (формальные и фактические). Область действия параметров.

8. Глобальные и локальные переменные.

9. Что такое итерационный цикл, число итераций, сходимость итерационного цикла?

10. Что такое рекурсия, рекурсивный алгоритм? Примеры применения рекурсивных алгоритмов.

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

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

 

1 x=0.7, E=10-4

 

2 E=10-4

3 x=1.5, E=0.5 *10-3

4

 

6

Даны числовой ряд и некоторое число ξ. Найти сумму тех членов ряда, модуль которых больше или равен заданному ξ. Общий член ряда имеет вид:

 

7. 8. 9.

 

10. 11. 12.

 

13. 14. 15.

 

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

Обработка строк

 

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

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

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

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

Для определение строкового типа используется служебное слово string, за которым в квадратных скобках указывается максимальная длина строки,например:

Type

Line=string[25];

Var

Mlin, aline:line;

В данном примере переменная mlin представляет собой последовательность,включающую до 25 символов, причем каждый символ имеет стандартный тип char.

Значение строковой переменой может быть назначено оператором присваивания, либо введено с устройства ввода,

Например: aline:=’ВСТИ’;

MLIN:=ALINE;

READLN(MLIN);

Изображение строки строится из цепочки символов и заключается в апострофы. Максимальная длина строки может быть задана 256 символов.

Процедуры и функции работы со строками

Данные процедуры и функции работы со строками (в отличие процедур и функций модуля Strings) используют стандартные строки языка Паскаль

Название Формат Назвачение
Concat Concat(str1,str2,str3,…,strN) Выполняет конкатенацию нескольких строк
Сорy Copy(ST, Poz, N) Возвращает подстроку длиной N символов, начиная с позиции Poz из строки St
Delete Процедура Delete (ST, Poz, N) Удаляет N символов строки St, начиная с позиции Poz.
Insert Процедура Insert (str1, str2, Poz) Вставляет подстроку str1 в строку str2, начиная с позиции Poz.
Length Length(st) Возвращает текущую длину строки St
Pos Pos(st1, st2,) Осуществляет поиск подстроки st1 в строке st2
Str Процедура Str (Ibr, st) Преобразует численное значение аргумента Ibr в его строковое представление st
Val Процедура Val(st, ibr, code) Преобразует строковый аргумент st в его численное представление ibr, code=0, если преобразование прошло успешно или выдает номер символа в строке ST не являющийся числом

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

20. Включить ПЭВМ

21. Загрузить интегрированную среду TURBO PASCAL

22. Перейти в окно редактирования и создать текст программы:

12. Записать созданный текст программы в файл на диске.

13. Провести компиляцию программы. Если в процессе компиляции обнаружена ошибка, ее необходимо исправить. Сохранить откорректированный файл на диске и провести компиляцию снова

14. Выполнить программу. Правильные результаты представить преподавателю и переписать в отчет.

15. Выйти из среды TURBO PASCAL.

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

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

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

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

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

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

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

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

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

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

11. Правила сравнения числовых и символьных данных

12. Назначение кода ASCII. Основные группы кодов.

13. Встроенные функции языка Паскаль, используемые для обработки символьных данных.

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

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

2. Даны два слова одинаковой длины. Присвоить переменной К число, равное количеству попарно одинаковых букв.

3. Дано предложение длиной 10 символов. Образовать новое предложение,. Включив внего символы исходного в обратном порядке.

4. Дано предложение длиной 10 символов. Образовать новое предложение, включив в него символы исходного, но заменив символы “А” и “е” на пробелы

5. Образовать последовательность символов, включив в неё символы исходного предложения, расположенных на нечетных позициях

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

7. Имеются две таблицы, содержащие по 5 слов. Образовать новую таблицу. В которой должны чередоваться слова 1-ой и 2-ой таблицы.

8. Задан текст из 20 букв. Подсчитать в нем количество букв “а” и “о”.

9. Дан текст, состоящий из 20 букв. Проверить, можно ли из заданной последовательности символов составить Ваше имя и напечатать его. В противном случае напечатать текст “Нет имени”.

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

11. Даны 5 названий городов. Расположить их в порядке убывания количества букв в названиях.

12. Дан текст, содержащий 15 символов. Определить, какой символ встречается в тексте чаще всего

13. Дано предложение. Напечатать это предложение, расположив каждое слово на новой строке

14. Даны два предложения. Напечатать то предложение, в котором больше слов.

15. Дано предложение. Если в этом предложении первая буква встречается более 3 раз, заменить её на восклицательный знак.

Исходный текст задать самостоятельно таким образом, чтобы решалась задача.

 

 

ЛАБОРАТОРНАЯ РАБОТА № 16-17

Date: 2015-12-12; view: 643; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию