Автор: Пользователь скрыл имя, 05 Декабря 2012 в 22:32, курсовая работа
Среди множества языком программирования выделяются десятки языков, нашедших широкое применение и распространение в те или иные отрезки компьютерной истории. В эту группу широко распространенных языков входит язык программирования Паскаль. Издавна принято считать, что он хорош для обучения программированию.
Язык программирования Паскаль создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля, который являлся
Введение
Среди множества языком программирования выделяются десятки языков, нашедших широкое применение и распространение в те или иные отрезки компьютерной истории. В эту группу широко распространенных языков входит язык программирования Паскаль. Издавна принято считать, что он хорош для обучения программированию.
Язык программирования Паскаль создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля, который являлся
автором первой в мире вычислительной (суммирующей) машины .
Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ». По мнению Вирта, «язык, на котором студент учится выражать свои идеи, существенно влияет на его способ мышления и изобретательность, беспорядок, сопутствующий существующим зыкам, непосредственно влияет на стиль программирования студентов».
Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели. Язык Паскаль является не только наилучшим языком обучения программированию, дает возможность осуществить простую реализацию его на современных ПЭВМ, использовать его как язык системного программирования, но и является базой для создания более мощных языков.
2. Описание блок схемы алгоритма решения задачи
Задаём массив с фиксированным числом элементов для поэлементного заполнения матрицы размером 3х2, введёнными с клавиатуры.
Задаём переменные для массива: max – для максимального элемента, buf – для сортировки.
Вводим переменные для массива: s_pol – для суммы положительных элементов матрицы, s_otr – для суммы отрицательных элементов матрицы, i,j –переменные для столбцов матрицы, k – для сортировки столбцов
1. Блок начала программы.
2. Присваиваем переменной s_pol начальное значение 0(обнуляем переменную).
3. Присваиваем переменной s_otr начальное значение 0(обнуляем переменную).
4. Блок очистка экрана.
5. Выводим на экран сообщение о том, что нужно ввести исходную матрицу.
6.Запускаем вложенный цикл для последовательной обработки элементов матрицы: выбор элемента строки матрицы. Внешний цикл для обработки строк матрицы(по i).
7. Внутренний цикл для обработки столбцов матрицы(по j).
8. Выводим на экран сообщение о том, что нужно ввести i-ый j-ый элемент матрицы.
9. Вводим с клавиатуры a[i,j] элемент матрицы.
10. Выводим на печать строку «Ishodnaia matrica».
11. Выводим на печать строку для разделенія («_ _ _ _ »).
12. Запускаем вложенный цикл для последовательного вывода на экран элементов матрицы. Внешний цикл для строк (по i).
13. Внутренний цикл для столбцов (по j).
14. Запускаем условный оператор для проверки условия: если условие a[i,j]>0 истинно выполняется действие в блоке 15, если ложно выполняется оператор, следующий за условным оператором.
15. Выводим на экран элемент матрицы a[i,j] без пробела.
16. Запускаем условный
оператор для проверки условия:
17. Выводим на экран элемент матрицы a[i,j] с пробелом.
18. Выводим на печать пустую строку для разделения.
19. Выводим на печать строку для разделенія («_ _ _ _ »).
20.Запускаем вложенный цикл для последовательной обработки элементов матрицы: нахождение модуля всех элементов матрицы a[i,j]. Внешний цикл для строк (по i).
21. Внутреннbй цикл для столбцов (по j).
22. Присваиваем элементу b[i,j] модуль элемента матрицы a[i,j].
23. Присваиваем максимуму значение b[i,j].
24. Запускаем вложенный цикл для нахождения максимального элемента матрицы. Внешний цикл для строк (по i).
25. Внутренний цикл для столбцов (по j).
26. Запускаем условный
оператор для проверки условия:
27. Присваиваем значению максимума значение b[i,j].
28. Выводим на печать строку для разделенія («_ _ _ _ »).
29. Выводим на печать строку «max-element».
30.Запускаем вложенный цикл для деления всех элементов матрицы на максимальный элемент матрицы. Внешний цикл для строк (по i).
31. Внутреннbй цикл для столбцов (по j).
32. Присваиваем элементу a[i,j] матрицы арифметическое выражение a[i,j]/max.
33. Выводим на печать строку « Resultat delenia na max-element» .
34. Выводим на печать строку для разделенія («_ _ _ _ »).
35. Запускаем вложенный цикл для последовательного вывода на экран элементов вновь полученной матрицы. Внешний цикл для строк (по i).
36. Внутренний цикл для столбцов (по j).
37. Запускаем условный оператор для проверки условия: если условие a[i,j]>0 истинно выполняется действие в блоке 38, если ложно выполняется оператор, следующий за условным оператором.
38. Выводим на экран элемент матрицы a[i,j] без пробела.
39. Запускаем условный оператор для проверки условия: если условие a[i,j]>= 0 истинно выполняется действие в блоке 40, если ложно выполняется оператор, следующий за условным оператором.
40. Выводим на экран элемент матрицы a[i,j] с пробелом.
41. Выводим на печать пустую строку для разделения.
42. Выводим на печать строку для разделенія («_ _ _ _ »).
43. Запускаем вложенный цикл для нахождения суммы положительных и суммы отрицательных элементов полученной матрицы. Внешний цикл для строк (по i).
44. Внутренний цикл для столбцов (по j).
45. Запускаем условный
оператор для проверки условия:
46. Присваиваем переменной s_otr счётчик накапливания отрицательных элементов матрицы s_otr+1.
47. Запускаем условный оператор для проверки условия: если условие a[i,j]>0 истинно выполняется действие в блоке 48, если ложно выполняется оператор, следующий за условным оператором.
48. Присваиваем переменной s_pol счётчик накапливания положительных элементов матрицы s_pol+1.
49. Выводим на печать строку для разделенія («_ _ _ _ »).
50. Выводим на печать строку «kol-vo otricatelnix elementov».
51. Выводим на печать строку «kol-vo polojitelnix elementov».
52. Выводим на печать строку для разделенія («_ _ _ _ »).
53. Запускаем вложенный цикл для сортировки каждого столбца мтрицы в порядке возрастания по абсолютной величине. Внешний цикл столбцов (по j).
54. Внутренний цикл для строк (по i).
55. Внутренний цикл для сортировки (по k).
56. Запускаем условный
оператор для проверки условия:
57. Присваиваем переменной buf значение элемента матрицы a[i,j].
58. Присваиваем элементу матрицы a[i,j] значение элемента матрицы a[k,j].
59. Присваиваем элементу матрицы a[i,j] значение переменной buf.
60. Выводим на печать строку « matrica c otsortirovannimn stolbcami».
61. Запускаем вложенный цикл для последовательного вывода на экран элементов матрицы. Внешний цикл для строк (по i).
62. Внутреннbй цикл для столбцов (по j).
63. Запускаем условный оператор для проверки условия: если условие a[i,j]>0 истинно выполняется действие в блоке 64, если ложно выполняется оператор, следующий за условным оператором.
64. Выводим на экран элемент матрицы a[i,j] без пробела.
65. Запускаем условный оператор для проверки условия: если условие a[i,j]>= 0 истинно выполняется действие в блоке 66, если условие ложно выполняется оператор, следующий за условный оператором.
66. Выводим на экран элемент матрицы a[i,j] с пробелом.
67. Выводим на печать пустую строку для разделения.
68. Оператор, который вводит символ, без отображения.
69. Блок конца программы.
3. Распечатка программы на языке Паскаль.
Тут напишешь текст своей проги
4. Распечатка исходных данных
m=3 ; n=2
ishodnaia matrica
_ _ _ _ _ _ _ _ _ _ _ _
1.200 -6.400
2.800 0.500
-0.800 1.400
_ _ _ _ _ _ _ _ _ _ _ _
5. Распечатка результатов расчёта
max-element = 6.4
_ _ _ _ _ _ _ _ _ _ _ _
rezultat delenia na max-element
_ _ _ _ _ _ _ _ _ _ _ _
0.188 -1.000
0.438 0.078
-0.125 0.219
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
kol_vo otricatelnix elementov = 2
kol_vo polojitelnix elementov = 4
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
matrica c otsort stolb
-0.125 0.078
0.188 0.219
0.438 -1.000
Заключение
В ходе проделанной работы я разработала алгоритм решения задачи в которой получала новую матрицу путём деления всех элементов первоначальной матрицы на элемент, наибольший по абсолютной величине. Полученную матрицу напечатала. Подсчитала число положительных и отрицательных элементов матрицы. Расположила элементы каждого столбца матрицы в порядке возрастания по абсолютной величине.
Для этого был составлен алгоритм решения поставленной задачи и написана программа на языке Паскаль. При составлении программы использовались следующие операторы:
1. <переменная>:=<выражение> - оператор присваивания
2. Begin <оператор 1>;<оператор 2>;...;<оператор N> end; - составной оператор.
Представляет собой
группу из произвольного числа
3. FOR <переменная цикла>:= <начальное значение>ТО<конечное значение> DO оператор; - оператор цикла FOR..DO. Переменная цикла – всегда целого типа, указывает сколько раз должны повторятся операторы. Этот цикл будет повторен фиксированное число раз, причем первый раз с начальным значение переменной цикла, а в последний -с конечным её значением.
4. IF <условие> THEN <оператор> ; (неполная форма) - оператор условия IF.
Условие задаётся переменной и её соотношением с некоторой константой или значением выражения. Если условие выполняется , то будет выполнен указанный оператор.
5. Write или writeln( <имя функции>(<список фактических параметров>)); - оператор вывода
6. Readln(<список ввода>) – оператор ввода.
7. Readkey – оператор, который вводит символ без отображения.
Список используемых источников
1. Абрамов В.Г., Трифонов Н.П. Введение в язык Паскаль. – М. :Наука,
1988.-320 с.
2. Абрамов С.А.,
Зима Е.В. Начала
М.: Наука, 1987. – 112 с.
3. Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на
алгоритмическом языке Паскаль. – Л.: Издательство Ленинградского
университета, 1985. – 216 с.
4. Грэхем Р.
Практический курс языка
200 с.
5. Йенсен К., Вирт Н. Руководство для пользователя и описание языка. –
М., 1982. 151 с.
6. Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.: Наука, 1989.
Содержание