Автор: Пользователь скрыл имя, 17 Октября 2011 в 00:29, курсовая работа
С помощью современных компьютеров можно решать различные математические и прикладные задачи. Одним из способов их решения является программирование алгоритмов решения на каком то языке программирования с последующим использованием этой программы в своих целях Turbo Pascal — это высокоуровневый язык программирования, разработанный Никлаусом Виртом в 1970 в качестве языка обучения структурному программированию.
Введение…………………………………………………………………….......3
Задание 1.
1.1. Постановка задачи ………………………………………………………..4
1.2. Блок-схема……………………..…………………………………………...5
1.3. Текст программы………...………………………………………………....6
1.4. Результат работы…………………………..……………………………...12
1.5. Описание работы программы……………..…………………………......13
1.6. Анализ допущенных ошибок………………………..…………………...14
Задание 2.
2.1. Постановка задачи………..………………………………………………15
2.2. Блок-схема…..…………………………………………………………….16
2.3. Текст программы……..…………………………………………………..17
2.4. Результат работы………………………………………………………….21
2.5. Описание работы программы…………………………………………….22
2.6. Анализ допущенных ошибок………………………………………….....23
Заключение ……………………………………………………………………..24
Список литературы…………...………………………………………………..25
Программа вычисляет значения функции f(x)=sin(x/2)/cos(x/2)+cos(x) на промежутке [a;b] c количеством шагов m=20. Для решения задачи было предложено 3 способа: с помощью оператора цикла с параметром, с предусловием или с постусловием. После вывода результата на экран была представлена возможность печати на принтере или повторного расчета программы.
Зная число m и вводимые с клавиатуры границы, программа вычисляет сам шаг от которого зависит аргумент.
Оператор цикла for удобен лишь в том случае если число повторений известно к началу его выполнения.
For (от) x:=1 to (до) m do (выполняется)…;
Оператор цикла repeat более удобный, так как к началу выполнения программы необязательно знать количество повторений, а завершается она тогда, когда аргумент впервые примет значение true.
Repeat (повторять) оператор1 until (до)логическое выражение оператор2;
Оператор цикла while…do переводиться как «делать…пока». Выполнение цикла завершается тогда, когда оператор впервые примет значение false.
While(пока)
условие do(делать) оператор;
Анализ допущенных ошибок
1. 35: Label identifier expected
Требуется идентификатор метки.
2. 37: END expected
Требуется END
3. 50: DO expected
Требуется оператор DO.
4. 81: Label already defined
Данная метка уже определена.
5. 85: ";" expected
Требуется указать ";".
6. 86: ":" expected
Требуется указать ":".
ЗАДАНИЕ 2
2.1.Постановка задачи
Написать программу, считывающую в ряд
не более 20 чисел и просматривающую все
заполненные элементы ряда; если элемент
положительный или равен нулю, то он пересылается
в ряд «pos», если отрицательный – то в ряд
«neg». Распечатать все 3 ряда.
2.3.Текст программы
Program massiv;
uses crt;
label 1,2,3;
const n=20;
var
a:array[1..n] of real;
pos:array[1..n] of real;
neg:array[1..n] of real;
i,j,l,m:integer;
k:char;
t:text;
begin
clrscr;
highvideo;
textattr:=yellow+16*red;
window (0,0,80,25);
clrscr;
gotoxy (33,9);
write('Курсовая работа');
gotoxy(19,11);
write('на тему:"Программирование на языке Pascal"');
gotoxy(24,13);
write('студентки 1-го курса группы ЭТ-11');
gotoxy(32,15);
write('Сухорословой Виктории');
gotoxy(34,20);
textcolor(blue);
write('нажмите любую клавишу для продолжения...');
readkey;
textattr:=black+16*white;
window(0,0,80,25);
clrscr;
gotoxy(36,9);
write('ЗАДАНИЕ');
gotoxy(3,11);
write('написать программу, считывающую в ряд не более');
gotoxy(3,12);
write('20 чисел и просматривающую все заполненные элементы ряда;');
gotoxy(4,13);
write('если элемент положительный или равен 0, то он');
gotoxy(7,14);
write('пересылается в ряд "pos", если отрицательный, то в ряд "neg"');
gotoxy(13,15);
write('распечатать все 3 ряда');
gotoxy(35,20);
textcolor(blue);
write('нажмите любую клавишу для продолжения...');
readkey;
textattr:=black+16*yellow;
window(0,0,80,25);
1:;
clrscr;
begin
writeln('исходный массив');
for i:=1 to n do read(a[i]);
clrscr;
writeln('Отсортированный массив');
for i:=1 to n do
begin
if a[i]>=0 then
begin
j:=j+1;
pos[j]:=a[i];
end
else
begin
l:=l+1;
neg[l]:=a[i]
end;
end;
writeln('исходный массив');
for i:=1 to n do write(a[i]:2:1,' ');
writeln;
writeln('положительный массив');
for m:=1 to j do write(pos[m]:2:1,' ');
writeln;
writeln('отрицательный массив');
for m:=1 to l do write(neg[m]:2:1,' ');
writeln;
readkey;
clrscr;
textattr:=black+16*yellow;
window(0,0,80,25);
gotoxy(22,11);
write('вывести на принтер?: Да/Нет, т.е. d/n');
readln(k);
if k='d' then
begin
assign(t,'prn');
write (t,a[i]:2:0,' ');
end;
if k='n' then goto 3;
3:;
clrscr;
textattr:=green+16*yellow;
window(0,0,80,25);
gotoxy(22,11);
write('повторить расчет?: Да/Нет, т.е. d/n');
k:=readkey;
case k of 'd':goto 1;
'n':halt;
end;
end;
end.
2.4.Результаты
работы программы
2.5.Описание работы программы
Программа выводит исходный массив, который
включает в себя не более 20 элементов.
Далее, анализируя данные исходного массива,
компьютер отбирает положительные или
равные 0 значения элементов и отправляет
их во второй массив «pos», остальные –
в третий массив «neg». Таким образом программа
наглядно отображает все 3 массива, что
позволяет проверить правильность написания
программы.
2.6.Анализ допущенных ошибок
1. 26: Type mismatch
Несоответствие типов.
2. 37: END expected
Требуется END
3. 50: DO expected
Требуется оператор DO.
4. 86: ":" expected
Требуется указать ":".
5. 85: ";" expected
Требуется указать ";".
6. 90: "=" expected
Требуется указать "=".
ЗАКЛЮЧЕНИЕ
В данной курсовой работе рассмотрено две разновидности программ, которые позволяют получить практические навыки в различных областях Pascal. Структура решения этих задач представлена двумя способами: блок-схемой и на языке программирования. Первый оказался более наглядным.
В ходе разработки программ
были допущены некоторые
СПИСОК ЛИТЕРАТУРЫ
1. Павловская, Т.А., Паскаль. Программирование на языке высокого уровня: Учебник для вузов – СПб.:Питер, 2004. – 393с.:ил.
2. Алексеев, Е.Р., Турбо Паскаль 7.0 / Алексеев Е.Р., Чеснокова О.В. – М.: НТ Пресс 2006. – 314, [6] c.: ил. – (Самоучитель).
3. Потопахин, В.В., Turbo Pascal. Решение сложных задач: Учебное пособие для вузов – СПб.:Питер, 2003. – 256с.