Алгоритмизация и программирование на языке Pascal
Министерство
образования Республики Беларусь
УО
"Полоцкий государственный университет"
Радиотехнический
факультет
Курсовая
работа
по дисциплине
"Информатика"
Выполнил
студент группы 10ЭС-1
Цыганков К.Д.
Руководитель
преподаватель Деканова М.В.
Новополоцк
2011
Содержание
Введение
. Решение
задачи №1
.1 Постановка
задачи
.2
Математическая формулировка задачи
.3 Форма
представления исходных данных
.4 Разработка
алгоритма и его описание
.5 Описание
программы
.5.1
Структура
.5.2 Описание
переменных
.6 Инструкция
по эксплуатации программы
1.7
Результаты проведенных расчетов и их анализ
.8 Исходный
код программы
2. Решение
задачи №2
2.1
Постановка задачи и выбор метода обработки информации
.2
Математическая постановка задачи
2.3 Форма
представления исходных данных
.4 Разработка
алгоритма и его описание
.5 Описание
программы
.5.1
Структура
.5.2 Описание
переменных
.6 Инструкция
по эксплуатации программы
2.7
Результаты проведенных расчетов и их анализ
.8 Исходный
код программы
3. Решение
задачи №3
.1 Постановка
задачи
.2
Математическая постановка задачи и выбор метода обработки информации
.3 Форма
представления исходных данных
.4 Разработка
алгоритма и его описание
.5 Описание
программы
.5.1
Структура
.5.2 Описание
подпрограмм
.5.3 Описание
переменных
.6 Инструкция
по эксплуатации программы
3.7
Результаты проведенных расчетов и их анализ
.8 Исходный
код программы
4. Решение
задачи №4
.1 Постановка
задачи
.2 Форма
представления исходных данных
.3 Разработка
алгоритма и его описание
.4 Описание
программы
.4.1
Структура
.4.2 Описание
переменных
4.5
Результаты проведенных расчетов и их анализ
.6 Исходный
код программы
. Решение
задачи №5
5.1
Постановка задачи
.2
Математическая постановка задачи и выбор метода обработки информации
.3 Форма
представления исходных данных
.4 Разработка
алгоритма и его описание
.5 Результаты
проведенных расчетов и их анализ
5.6 Исходный
код программы
Заключение и
выводы
Список
литературы
Введение
программирование pascal массив алгоритм
С каждым днём программирование становиться всё более
популярно среди обычных пользователей, что связано с интенсивным развитием
информационных технологий. В начале компьютерной эры программисты были рабами
вычислительных машин. Разработчики программного обеспечения должны были писать
свои команды на единственном языке, который понимали компьютеры, - в двоичном
коде, и программы выглядели как последовательность нулей и единиц. По мере того
как время шло, и алгоритмы усложнялись, программирование требовало все больше
времени, а внесение изменений в программы и их модернизация становились
практически невозможными.
Язык Паскаль относится к процедурно-ориентированным языкам высокого
уровня
Достоинства языка Паскаль:
. идеология языка Паскаль близка к современным методикам и
технологиям программирования, в частности, к структурному программированию и
нисходящему проектированию (метод пошаговой детализации) программ. Паскаль
может использоваться для записи программы на различных уровнях ее детализации,
не прибегая к помощи схем алгоритмов;
. гибкие возможности в отношении используемых структур данных;
. высокая эффективность программ;
. наличие средств повышения надежности программ, включающих
контроль правильности использования данных различных типов и программных
элементов на этапах трансляции, редактирования и выполнения.
В связи с этим язык Паскаль в настоящее время находит самое широкое
распространение для решения большого круга разнообразных практических и научных
задач.
В рамках курсовой работы необходимо разработать пять программ на
различную тематику согласно заданию курсовой работы.
Цели курсовой работы:
− разработка программ согласно заданию курсовой работы;
− систематизация и закрепление теоретических знаний и практических
умений, полученных за время обучения дисциплины "Информатика".
. Решение задачи №1
.1 Постановка задачи
Написать программу для вычисления по указанной формуле. Проверить
полученный ответ с помощью программы MathCAD.
.2 Математическая формулировка задачи
Для решения данной задачи будет использована формула, приведённая ниже
y:=1.8+ln(abs(4-2/7-(sin(sin(5*x/3)/cos(sin(5*x/3))*(sin(5*x/3))))));
1.3 Форма представления исходных данных
При разработке программного продукта используются переменные
вещественного типа (real): x, y
.4 Разработка алгоритма и его описание
Программа работает по следующему алгоритму:
вводим X
переменная Y - решение данного уравнения
вводим данное уравнение
выводим результат
1.5 Описание программы
.5.1 Структура
Название программы;
Раздел объявления переменных;
Основной блок программы.
.5.2 Описание переменных
В процессе написания программы используются переменные
вещественного типа (real):- неизвестная в формуле, вводимая с
клавиатуры;- решение уравнения
.6 Инструкция по эксплуатации программы
При запуске программы под названием odin появляется запрос на введение
значения х. После введения получаем значение выражения.
1.7 Результаты проведенных расчетов и их анализ
Введите X:
.6
Полученное значение:
.84403919098297
Результат проведенных расчетов верен
.8 Исходный код программы
odin;
var x,y: real;('ВВЕДИТЕ
Х');(x);:=1.8+ln(abs(4-2/7-(sin(sin(5*x/3)/cos(sin(5*x/3))*(sin(5*x/3))))));
writeln(y);.
2. Решение
задачи №2
.1 Постановка задачи и выбор метода обработки информации
Вычислить сумму ряда с точностью e=10-4
.2 Математическая постановка задачи
Для решения данной задачи будем использовать формулу
Сумму
необходимо вычислять до тех пор пока сумма ряда не станет меньше чем e=10-4.
2.3 Форма представления исходных данных
Исходные данные вводятся с клавиатуры.
Используются переменные целочисленного типа (integer): i и вещественного
типа (real): e, sum, a, x
.4 Разработка алгоритма и его описание
Пользователь вводит значение X с клавиатуры. После производятся
вычисления до значения с точностью, равной 10-4. После нахождения результата
сумма выводится на экран.
.5 Описание программы
.5.1 Структура
Название программы;
Раздел объявления переменных;
Основной блок программы.
.5.2 Описание переменных
В процессе написания программы используются переменные целочисленного
типа (integer): i вещественного типа (real): e, sum, a, x
2.6 Инструкция по эксплуатации программы
После запуска появится строка "Введите Х=". После необходимо
ввести значение переменной Х. Далее производятся необходимые вычисления и
выводится результат "Сумма=".
.7 Результаты проведенных расчетов и их анализ
Для проведения тестирования выполним программу для некоторого значения Х.
В результате тестирования ошибок в работе программы не обнаружено.
.8 Исходный код программы
z126;
var i:integer;,sum,a,x:real;fact(n : integer) : longint;n
<= 1 then:= 1:= n * fact(n - 1);('Введите
х=
');(x);:=0.0001;:=0;:=1;:=0;abs(a)<=e do
begin:=power(-1,i+1)*(power(x,2*i-1)*(2*i+x+1))/fact(2*i+1);:=sum+a;:=i+1;;('сумма=', sum:6:10);.
3. Решение задачи №3
.1 Постановка задачи
Найти максимальное из чисел, встречающихся в заданном двухмерном массиве
более одного раза.
.2 Математическая постановка задачи и выбор метода обработки информации
Для решения данной задачи необходимо найти максимальное число,
встречающееся в данном массиве более одного раза.
.3 Форма представления исходных данных
При разработке программы исходные данные представлены переменными
целочисленного типа (Integer): i, j, z, x, c, n, max; двумерный массив
a:array[1..q,1..w] of integer
.4 Разработка алгоритма и его описание
. Запускаем программу.
. На экране дисплея задаётся массив.
. С помощью операции сравнения элементов в двумерном массиве, выявить
число.
3.5 Описание программы
.5.1 Структура
Название программы;
Раздел объявления переменных;
.5.2 Описание переменных- максимальное число, которое встречается в
массиве более одного раза.
a:array[1..q,1..w] of integer - массив элементов
3.6 Инструкция по эксплуатации программы
При запуске программы под названием задание3-28 выводится двумерный
массив и максимальное число, которое встречается в нём более одного раза.
.7 Результаты проведенных расчетов и их анализ
Ввод массива:
18 18
7 3
19 7
9 9
18 2
Результат:
Результат проведенных расчетов верен.
.8 Исходный код программы
q=5;
w=3;a:array[1..q,1..w] of integer;,j,z,x,c,n,max:integer;i:=1
to q do beginj:=1 to w do begin[i,j]:=random(20);(a[i,j],'
');;;;:=a[1,1];:=1;i:=1 to q do beginj:=1 to w do begina[i,j]>max then
beginz:=1 to q do beginx:=1 to w do
begin(a[i,j]=a[z,x])and(z<>i)and(x<>j) then n:=n+1;;;n>c then
begin c:=n; max:=a[i,j]; end;:=1;;;;(max);
end.
. Решение задачи №4
.1 Постановка задачи
Дана матрица. Упорядочить элементы строк матрицы по неубыванию, а сами
строки по неубыванию модуля произведения нечетных элементов строк. Использовать
сортировку простыми вставками, реализовав метод в виде подпрограммы.
.2 Форма представления исходных данных
Упорядочить элементы массива в порядке неубывания, а сами строки по
неубыванию произведения нечетных элементов строк.
.3 Разработка алгоритма и его описание
. Вызываем процедуру сортировки;
. Первый элемент записать "не раздумывая".
. Пока не закончится последовательность вводимых данных, для каждого
нового ее
элемента выполнять следующие действия:
начав с конца уже существующей упорядоченной последовательности, все ее
элементы, которые больше, чем вновь вводимый элемент, сдвинуть на 1 шаг
назад;
записать новый элемент на освободившееся место.
. Выводим на экран дисплея отсортированный массив.
4.4 Описание программы
.4.1 Структура
Название программы;
Раздел объявления переменных;
Основной блок программы.
.4.2 Описание переменных:array[1..q,1..w] of integer - массив
элементов:array[1..q] of integer - массив для произведения нечетных
.5 Результаты проведенных расчетов и их анализ
В ходе выполнения программы ошибок не обнаружено.
.6 Исходный код программы
crt;
const q=5;=5;a:array[1..q,1..w] of integer;:array[1..q] of
integer;,i:integer;PrVst(i:integer; var s:array[1..q] of
integer);g,x:integer;i:= 2 to w dos[i-1]>s[i] thenx:= s[i];:=
i-1;(g>0)and(s[g]>x) dos[g+1]:= s[g];:= g-1;;[g+1]:=
x;;;swap(i,j:integer; var a:array[1..q,1..w] of integer);e,v:integer;e:=1 to q
do begin:=a[i,e];[i,e]:=a[j,e];[j,e]:=v;;;i:=1 to q do beginj:=1 to w do
begin[i,j]:=random(100);(a[i,j],' ');;;;i:=1 to q do beginj:=1 to w do
s[j]:=a[i,j];(i,s);j:=1 to w do begin a[i,j]:=s[j]; s[j]:=1; end;;i:=1 to q do
beginj:=1 to w doj mod 2=1 then s[i]:=s[i]*a[i,j];;i:=1 to q do beginj:=1 to q
dos[i]>s[j] then swap(i,j,a);;;i:=1 to q do beginj:=1 to w do write(a[i,j],'
');
writeln;;.
.1 Постановка задачи
Задан список слов, перечисленных через запятую. Напечатать те слова,
которые имеют больше двух гласных букв. Результат вывести на экран и в
текстовый файл
.2 Математическая постановка задачи и выбор метода обработки информации
Для решения задачи необходимо разделить все слова запятыми. Потом
сравнить в каждом слове количество гласных и вывести слова, в которых более
двух гласных.
.3 Форма представления исходных данных
Текст вводится пользователем с клавиатуры.
.4 Разработка алгоритма и его описание
. Вводим с клавиатуры текст.
. Каждое слово разделяем запятой.
. Поиск слов, в которых больше двух гласных.
. Выводим результат.
5.5 Результаты проведенных расчетов и их анализ
Протестируем программу, введя текст - рыбалка, футбол, информатика.
Полученный результат - рыбалка информатика.
Полученный результат сохраняется в файле output.txt
.6 Исходный код программы
gl=['у','е','ы','а','о','я','и','ю'];
rz=[',','
','.'];f1:text;:array[1..100] of
string;,d:string;,i,w,g:byte;(f1,'output.txt');(f1);(a);:=1;i:=1 to length(a)
do beginnot (a[i] in rz) then s[e]:=s[e]+a[i]e:=e+1;;i:=1 to e do
begin:=s[i];w:=1 to length(s[i]) dod[w] in gl then g:=g+1;g>2 then begin
write(s[i],' '); write(f1,s[i],' '); end;:=0;;(f1);.
Заключение и выводы
За время написания курсовой работы я детально изучил функции и
возможности среды разработки языка программирования Pascal, приобрел навыки
рационального использования программного обеспечения современных персональных
компьютеров при решении разнообразных задач. В ходе курсовой работы была
подробно рассмотрена работа с одномерными и двумерными массивами, работа со
строками, числами.
Задачи были выполнены в соответствии с требования предъявляемыми в учебном
заведении "Полоцкий государственный университет", и написаны
исключительно в учебных целях.
Список литературы
1. Константайн
Л., Локвуд Л. Разработка программного обеспечения. - СПб.: Питер, 2004. - 592
с.: ил.
. Жарков
С.В. Shareware: профессиональная разработка и продвижение программ. - СПб.:
БХВ-Петербург, 2003. - 320 с.: ил.
. Архангельский
А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. -
М.:ООО "Бином-Пресс", 2006. - 1152 с.: ил
. Кораблев
В., Турбо Паскаль 7.0. - СПб.: Питер, 2004. -479с.:ил.
. Turbo
Pascal для студентов и школьников - СПб.: БЧВ - Петербург, 2004. - 352 с.: ил.
(Г.Г. Рапаков, С.Ю. Ржеуцкая)
. Turbo
Pascal для школьников. Версия 7.0. - М.: Финансы и статистика, 1996. - 446 с.
(Попов В.Б.)
. Turbo
Pascal: Учись программировать. 2002. - 448с.: ил. (Меженный О.А.)
. Аляев
Ю.А., Гладков В.П., Козлов О.А. Практикум по алгоритмизации и программированию
на языке Паскаль: Учеб. пособие. - М.: Финансы и статистика, 2004.
. Бородич
Ю.С., Вальвачев А.Н., Кузьмич А.И. Паскаль для персональных компьютеров. - Мн.:
Выш. шк.; БФ ГИТМ "НИКА", 1991.
. Информатика,
7-11 класс. Киев, 2004. Гаевский А.Ю.