|
Реферат: Turbo Basic прикладной (Компьютеры)
Министерство общего и профессионального образования Российской федерации
Южно-Уральский Государственный университет Кафедра строительных материалов
КУРСОВОЙ ПРОЕКТ По дисциплине «Информатика»
Выполнил студент группы АС-145 Ахтямов Руслан Рашидович Руководитель проекта Абызов Виктор Александрович Нормоконтроль Семеняк Григорий Сергеевич К защите Проект защитил с оценкой
Челябинск 2001
ВВЕДЕНИЕ
Информатика является одной из важных научных дисциплин. Она изучает методы представления, накопления, передачи и обработки информации с помощью электронно-вычислительных машин. Знание информатики необходимо для плодотворной творческой деятельности инженера любой специальности. Эта дисциплина требует необходимые знания по математике и другим предметам. Разработка данного курсового проекта основано на разработке программы расчета среднего балла студентов АС-145 и АС-144 по результатам зимней сессии. Эта программа достаточно актуальна. При различного рода дополнениях в эту программу можно рассчитать средние балы любого количества студентов, любых групп. Так же можно ее использовать для выявления отличников по определенным предметам, для возможного их поощрения. Эта программа может облегчить работу кураторов, деканата по надзору за успеваемостью студентов, а так же для начисления стипендии студентам. Программа может сохранять таблицы в файлы, что значительно облегчают работу. Программа затрагивает широкий круг вопросов. Ее разработка отвечает интересам всего изучаемого курса информатики, потому что она требует самостоятельного углубленного изучения информации для программирования, которая не входит в курс обучения по данной дисциплине.
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ Разработать программу расчета среднего балла студентов групп АС-144, АС-145 по результатам зимней сессии.
СОДЕРЖАНИЕ РАБОТЫ Титульный лист 1 Введение 2 Задание на курсовую работу 3 Содержание работы 4 Аннотация 5 Формулировка задачи. Основные понятия и определения, встречающиеся в расчетно-пояснительной записке 6 Блок-схема алгоритма решения задачи 7 Текст программы 8 Подробное построчное описание хода работы программы. 11 Контрольный пример проверки решения задачи 13 Список используемой литературы 14
АННОТАЦИЯ Курсовой проект по дисциплине «Информатика» Курсовой проект посвящен для расчета среднего балла студентов АС-144 и АС-145 по результатам зимней сессии, а так же выявление отличников по определенным дисциплинам. Он может применен подобных расчетов в любых других группах. Педагогической задачей курсового проекта является глубокое и детальное изучение такого языка программирования, как Turbo Basic. В курсовом проекте содержится текст программы, исходные данные которой вводятся помощью файла последовательного доступа, для этого разработана специальная пред-программа. результаты расчета выводятся на экран в виде таблицы и файла последовательного доступа. К тексту курсового проекта прилагается блок-схема алгоритма решения задачи построчное описание хода программы контрольный пример проверки решения задачи и дискета которая содержит файл программы.
Формулировка задачи. Основные понятия и определения, встречающиеся в расчетно-пояснительной записке. Формулировка задачи:
Разработать программу расчета среднего балла студентов групп АС-144, АС-145 по результатам зимней сессии. Исходные данные: результаты сдачи экзаменов на день окончания зимней сессии 2001 года. Дополнительные условия разработки программы: 1. Исходные данные для программы вводить с помощью файла последовательного доступа; 2. Результаты расчета ранжировать по уменьшению(первая строка содержит фамилию студента, имеющего максимальный средний балл) и вывести в виде таблицы на экран и в файл последовательного доступа. 3. Вывести на экран по алфавиту фамилии студентов, получивших оценку «отлично», сгруппировав их по дисциплинам.
Основные понятия и определения, встречающиеся в расчетно-пояснительной записке:
Стоковые переменные - имена представляются строковые значения, эти значения могут изменяться в ходе выполнения программ. Константы – группа литер, окруженных двумя кавычками, значения которых не изменяется в ходе программы. Файл последовательного доступа – файлы созданные последовательностью символов в кодах ASCCI. Программа – набор кодов символов или кодов команд, выполняемых в определенной последовательности. Команда – инструкция о выполнении некоторой операции. Массив – группа строковых и числовых данных, разделяющих между собой одно и то же мы. Цикл – содержит некоторое количество операций, которое многократно повторяется в программе.
БЛОК-СХЕМА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ начало
b$=»Фамилия», с$=»Имя», d$=»Отчество», r$=»дисциплина», I$=»Средний»,j$=»бал», g$=»матем»,h$=»физика»,f$=»нач/геом»
вывод b$, с$, d$,r$, I$,j$, g$,h$,f$
i=1,50
k=b(1,i) f=b(2,i) c=b(3,i) p=(k+f+c)/3 q(i)=p pol(I)=I p=0
n=1,50
I=1,49
Нет C=q(I+1) q(i)=q(I+1) q(i)=c q(i)n1) or (n1>10) or (1>m1) or (m1>10)) {Условия ошибки} then begin WriteLn ('ОШИБКА!!!'); Halt; end else begin WriteLn ('Введите исходную матрицу'); {Ввод исходной матрицы} for i1:=1 to m1 do for j1:=1 to n1 do Read (MAS1[i1,j1]); end;
for i1:=1 to m1 do {Вывод исходной матрицы} begin for j1:=1 to n1 do Write (MAS1[i1,j1]); WriteLn; end;
Case operation of {Оператор выбора «operation»} 1: begin {Определитель} if (m1n1) then writeLn ('ОШИБКА!!!') {Условие ошибки} else begin {Формула определителя} det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3] +MAS1[2,1]*MAS1[3,2]*MAS1[1,3]
+MAS1[1,2]*MAS1[2,3]*MAS1[3,1]) -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3] +MAS1[3,2]*MAS1[2,3]*MAS1[1,1] +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]); WriteLn ('Opredelitel det=',det); {Вывод определителя} end; end;
2: begin {Обратная матрица} if (m1n1) then WriteLn ('ОШИБКА!!!') {Условие ошибки} else begin det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3] {Определитель} +MAS1[2,1]*MAS1[3,2]*MAS1[1,3] +MAS1[1,2]*MAS1[2,3]*MAS1[3,1]) -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3] +MAS1[3,2]*MAS1[2,3]*MAS1[1,1] +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]); if det = 0 then WriteLn ('ОШИБКА!!!') {Условие ошибки} else begin {Союзная матрица} for i1:=1 to m1 do for j1:=1 to n1 do MAS2[i1,j1]:=MAS1[j1,i1]; {Итоговая формула} for i1:=1 to m1 do for j1:=1 to n1 do
MAS3[i1,j1]:=(1/det)*MAS2[i1,j1]; WriteLn; WriteLn ('Обратная матрица:'); for i1:=1 to m1 do begin {Вывод обратной матрицы} for j1:=1 to n1 do Write (MAS3[i1,j1]); WriteLn; end; end; end; end;
3: begin {Транспонирование матрицы} for i1:=1 to m1 do for j1:=1 to n1 do MAS2[i1,j1]:=MAS1[j1,i1]; {Формула} WriteLn ('Транспонированная матрица: '); for i1:=1 to m1 do begin {Вывод транспонированной матрицы} for j1:=1 to n1 do Write (MAS2[i1,j1]); WriteLn; end; end;
4,5: begin {Сложение/вычитание матриц} {Ввод второй матрицы} WriteLn ('Введите кол-во строк второй матрицы'); ReadLn (m2); Writeln ('Введите кол-во столбцов второй матрицы'); ReadLn (n2); If (n2n1) or (m2m1) then WriteLn ('OSHIBKA!!!') {Условие ошибки} else begin WriteLn ('Введите вторую матрицу'); for i1:=1 to m1 do for j1:=1 to n1 do Read (MAS2[i1,j1]); end; for i1:=1 to m1 do {Вывод второй матрицы} begin for j1:=1 to n1 do Write (MAS2[i1,j1]); WriteLn; end;
if operation = 4 then k := 1; if operation = 5 then k := -1; for i1:=1 to m1 do for j1:=1 to n1 do MAS3[i1,j1]:=MAS1[i1,j1]+k*MAS2[i1,j1]; {Итоговая формула}
writeln('Сумма/разность:'); for i1:=1 to m1 do begin for j1:=1 to n1 do Write(MAS3[i1,j1]); WriteLn; end;
end;
6: begin {Умножение матриц} {Ввод второй матрицы} WriteLn ('Введите кол-во строк второй матрицы');
ReadLn (m2); Writeln ('Введите кол-во столбцов второй матрицы'); ReadLn (n2); If ((1>=m2) or (m2>=10) or (1>=n2) or (n2>=10) {Условие ошибки} or (n2m1)) then WriteLn ('ОШИБКА!!!') else begin WriteLn ('Введите вторую матрицу'); for i2:=1 to m2 do for j2:=1 to n2 do Read (MAS2[i2,j2]); end; for i2:=1 to m2 do begin {Вывод второй матрицы} for j2:=1 to n2 do Write (MAS2[i2,j2]); WriteLn; end; m3:=m1; n3:=n2; for i3:=1 to m3 do for j3:=1 to n3 do begin MAS3[i3,j3] := 0; for i2:= 1 to m2 do {Итоговая формула} MAS3[i3,j3] :=MAS3[i3,j3] + MAS1[i3,i2] * MAS2[i2,j3]; end; begin {Вывод произведения} writeln; writeln('Произведение:'); for i3:=1 to m1 do begin for j3:=1 to n2 do Write (MAS3[i3,j3]); WriteLn; end; end; end; End; {End Case} ReadKey; END. {Конец программы}
Пример работы программы
1. Операция нахождения определителя:
1) При появлении на экране меню с выбором операций, выбираем 1. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: det = 54.
2. Операция нахождения обратной матрицы:
1) При появлении на экране меню с выбором операций, выбираем 2. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: ( 1,851*100 9,259*100 1,481*10 ( ( 7,407*100 5,555*100 1,851*100 ( ( 9,259*100 1,296*10 7,407*100 (.
3. Операция транспонирования матрицы:
1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) Программа выдает ответ: ( 1 5 8 ( ( 4 3 1 ( ( 5 7 4 (.
4. Операция сложения матриц:
1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( 3 12 15 ( ( 15 9 21 ( ( 24 3 12 (.
5. Операция вычитания матриц:
1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 ( 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( -1 -4 -5 ( ( -5 -3 -7 ( ( -8 -1 -4 (.
6. Операция перемножения матриц:
1) При появлении на экране меню с выбором операций, выбираем 3. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 3. 6) Кол-во столбцов – 3. 7) Вводим матрицу: ( 2 8 10 ( ( 10 6 14 ( ( 16 2 8 (. 8) Программа выдает ответ: ( 122 42 106 ( ( 152 72 148 ( ( 90 78 126 (.
7. Первый исключительный случай:
1) При появлении на экране меню с выбором операций, выбираем 1. 2) На предложение ввести кол-во строк матрицы, выбираем 0. 3) Кол-во столбцов – 3. 4) Программа выдает: «ОШИБКА!!!».
8. Второй исключительный случай:
1) При появлении на экране меню с выбором операций, выбираем 1 (2, 3). 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 2. 4) Вводим матрицу: ( 1 4 ( ( 5 3 ( ( 8 1 (. 5) Программа выдает: «ОШИБКА!!!».
9. Третий исключительный случай:
1) При появлении на экране меню с выбором операций, выбираем 4. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3.
4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 2. 6) Кол-во столбцов – 2. 6) Программа выдает: «ОШИБКА!!!».
10. Четвертый исключительный случай:
1) При появлении на экране меню с выбором операций, выбираем 6. 2) На предложение ввести кол-во строк матрицы, выбираем 3. 3) Кол-во столбцов – 3. 4) Вводим матрицу: ( 1 4 5 ( ( 5 3 7 ( ( 8 1 4 (. 5) На предложение ввести кол-во строк матрицы, выбираем 2. 6) Кол-во столбцов – 2. 7) Программа выдает: «ОШИБКА!!!».
Выводы по работе
Для проверки результатов, выдаваемых программой, использовался математический пакет MathCAD 2001 Professional. Существенный недостаток программы в том, что при нахождении обратной матрицы и определителя, программа может работать только с матрицами, размером не превышающие 3х3. Это связано со значительным усложнением программы, в случаи необходимости выполнения вышеперечисленных операций над матрицами большего размера. При написании программы использовалась следующая литература: 1) Фаронов В.В. «TurboPascal 7.0, начальный курс. Учебное пособие». 2) Мизрохи С.В. «TurboPascal и объектно-ориентированное програмирование». 3) Голубев А.Б., Сидоров Ю.Н., Чередниченко А.И., Яценко И.В. «Основы программирования на языке Pascal». 4) Боревич Э.И. «Определители и матрицы». 5) Гутер Р.С., Резниковский П.Т. «Программирование и вычислительная математика». 6) Письменный Д.Т. «Конспект лекций по высшей математике», 1 часть. 7) Владимирский Б.М., Горстко А.Б., Ерусалимский Я.М. «Математика. Общий курс». -----------------------
Начало
Case operation
Operation = 1
Operation = 2
Operation = 3
Operation = 6
1
Ввод operation
Ввод m1
Ввод n1
1>n1 or n1>10 or 1>m1 or m1>10
ДА
НЕТ
Конец
Ввод MAS1
Вывод MAS1
Подсчет det
Вывод det
Подсчет обр.матр.
Вывод обр.матр.
Транспонир. матрицы
Вывод транспонир. матрицы
Operation = 4, 5
ДА
n1n2 or m1m2
Ввод n2
Ввод m2
НЕТ
Вывод MAS2
Ввод MAS2
Operation = 4
ДА
k :=1
НЕТ
3
k :=-1
ДА
Operation = 5
Вывод MAS3 (сумма/разность)
2
Ввод n2
Ввод m2
1>=m2 or m2>10 or 1>=n2 or n2>10 n2m1
ДА
НЕТ
Вывод MAS2
Ввод MAS2
n3 := n2
m3 := m1
Вывод MAS3 (произведение)
Текст: «Ошибка»
4
5
6
7
| |