Лекции.Орг


Поиск:




Работа и интерфейс программы

Предварительно для нашего задания мы должны создать файл data3.txt, записать туда данные, а именно параметры A,R через пробел для построения графика.

Рисунок 4.1 – Заполнение файла

В зависимости от введенных параметров, программа будет строить и выводить график в графическое окно (см. Рисунок 4.2).

Рисунок 4.2 –Работа графического окна

 

 

Задание 5. Записи.

Написать программу, которая формирует файл записей данной структуры
Type Kniga=Record
Avtor:String;
Nazvanie:String;
God:Integer;
Izdatel:String;
Stranizy:Integer;
End;
и определяет: - есть ли книги данного автора;
- книгу с наибольшим количеством страниц;
- названия книг данного автора, изданных с указанного года, в данном издательстве.

Блок – схема:

 


 

 

Алгоритм:

Для начала зададим имя программ. Подключим модуль работы с экраном. Опишем запись. В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.

Сделаем описание переменных.

Далее для ввода в диалоговом окне данных создаем цикл из n=10.

 

 

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

Согласно задание нужно найти книгу с наибольшим количеством страниц. Для этого в цикле сравниваем с максимальным значением каждую книгу.

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

В итоге получаем код программы (см. Приложение Д)

Работа и интерфейс программы

Ввод осуществляется при помощи клавиатуры и подтверждается (принимается) нажатием клавиши Enter. Все данные должны вводиться согласно условию, сказанному в задание и дублированному на экране (см. рисунок 5.1).

Рисунок 5.1 – Ввод данных

 

После того как мы ввели все данные выполняем все условия указанные в задании. Выполняем поиск

- есть ли книги данного автора;

- книгу с наибольшим количеством страниц;

- названия книг данного автора, изданных с указанного года, в данном издательстве.

(см. Рисунок 5.2)

Рисунок 5.2 - Результат

 

 

Заключение

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

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

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

 

 

Список используемой литературы

 

1. Немнюгин С.А. - Turbo Pascal. Программирование на языке высокого уровня, СПб.: Питер, 2002, 496 с.

2. Рапаков Г. Г., Ржеуцкая С. Ю. – Программирование на языке Pascal, СПб.: БХВ-Питербург, 2004, 480 с.

3. Окулов С. М. - Основы программирования, М.:БИНОМ. Лаборатория знаний, 2004, 424 с.

4. Материалы сайта Система программирования PascalABC.NET - http://pascalabc.net/.

5. С.Н.Лукин - Turbo Pascal 7.0. Самоучитель, Диалог – МИФИ, 1999, 211 с.

6. Энциклопедия «Википедия» [Электронный ресурс] - http://ru.wikipedia.org.

7. Ерёмин О. Ф. – Методическое пособие по программированию на языке Pascal ABC, Моздок, 2009, 49 с.

 

Приложение А.

Код программы к заданию 1

program A1;

uses crt;

var s:string;

A:array [1..20] of string;

B:array [1..10] of string;

i,j,max,r,k,l,n,m:integer;

begin

read(s); {ввод последовательности слов}

r:=1;

for i:=1 to length(s) do

if s[i]=' ' then

begin

j:=j+1;

A[j]:=copy(s,r,i-r);

r:=i+1;

end; {Каждое слово вносится в отдельную ячейку массива символьного типа}

for i:=1 to j do

writeln('A[',i,']=',A[i]);

{Массив выводится для проверки}

For i:=1 to j do

begin

m:=0;

n:=0;

for l:=1 to length(A[i]) do

case A[i][l] of

'0'..'9': n:=1;

'а'..'я': m:=1;

end;

if (n<>0) and (m=0) then begin

writeln('только числа в слове "',A[i],'"');

for j:=length(A[i])downto 1 do

write(A[i][j]);

writeln;

end;

if (m<>0) and (n=0) then begin

writeln('только знаки в слове "',A[i],'"');

for j:=length(A[i])downto 1 do

write(A[i][j]);

writeln;

end;

end;{Выводим слова, в которых есть либо только числа, либо только знаки и переворачиваем их}

end.

 

Приложение Б.

Код программы к заданию 2

 

 

Приложение В.

Код программы к заданию 3

Program A3;

uses crt;

const c=['0','1','2','3','4','5','6','7','8','9'];

var

f1,f2:text;

a:array[1..99] of string;

b:array[1..99] of integer;

s,s1:string;

r1,r2:real;

i,j,k,x,g,v,s2:integer;

 

begin

assign(f1,'file1.txt');

assign(f2,'file2.txt');

Rewrite(f1);

write('vvedite text: ');readln(s);

write(f1,s);

write('начальное слово: ');

readln(r1);

write('конечное слово: ');

readln(r2);

 

Reset(f1);

while not eof(f1) do readln(f1,s);

 

j:=1;

for i:=1 to length(s) do

begin

if (s[i]<>' ') and (s[i] in c) then

begin

a[j]:=a[j]+s[i];

end

else inc(j);

end;

x:=j;

i:=0;

s2:=0;

for j:=1 to x do

begin

s1:=a[j];

val(s1,v,g);

if (v>r1) and (v<r2) then

begin

inc(i);

b[i]:=v;

end

else begin

s2:=s2+v;

k:=k+1;

end;

end;

writeln;

writeln('Кол-во чисел: ',k);

for j:=1 to x do writeln(a[j]);

writeln;

writeln('Сумма чисел: ',s2);

Rewrite(f2);

for i:=1 to k do write(f2,b[i],' ');

close(f1);

close(f2);

end.

 

Приложение Г

Код программы к заданию 4

program A4;

uses GraphABC,crt;

const p=3.14;

var x,t,y,A,R,m:real;

n:byte;

l:text;

Q:array [1..4] of real;

 

begin

setwindowsize(600,600);

line(300,0,300,600);

line(0,300,600,300);

assign(l,'data3.txt');

reset(l);

for n:=1 to 4 do

begin

readln(l,m);

Q[n]:=m;

end;

A:=Q[1];

R:=Q[2];

t:=0;

while t<2*p do

begin

x:=(1+A)*cos(A*t)+R*cos(1+A)*t;

y:=(1+A)*sin(A*t)+R*sin(1+A)*t;

circle(trunc(x*20+300),trunc(y*20+300),2);

t:=t+0.01;

end;

close(l);

end.

 

Приложение Д.

Код программы к заданию 5

Program А5;

Uses Crt;

Const n=10;

Type kniga = record

Avtor, Nazvanie, Izdatel:string[20];

God:integer;

Stranizy:real;

end;

 

Var a: array[1..n] of kniga;

i:byte;

avt:string;

naz:string;

izd:string;

max:real;

g:integer;

 

begin

ClrScr;

for i:=1 to n do

with a[I] do

begin

Writeln('Введите автора ',I);

Readln(Avtor);

Writeln('Название книги');

Readln(Nazvanie);

Writeln('Издательство');

Readln(Izdatel);

Writeln('Год издания');

Readln(god);

Writeln('Кол-во страниц');

Readln(Stranizy);

end;

Writeln;

Writeln('Введите автора интересующей книги');

Readln(avt);

for i:=1 to n do

with a[I] do

if avtor=avt then writeln (avtor,' "',Nazvanie,'", ',izdatel,' ',god,'г. ',stranizy,'стр.');

Readln;

Writeln('Книга с наибольшим кол-ом страниц');

max:=0;

for i:=1 to n do

with a[I] do

if stranizy>max then begin

max:=stranizy;

naz:=Nazvanie;

end;

write(Naz,' ',max,'стр.');

Readln;

Writeln('Введите автора интересующей книги');

Readln(avt);

Writeln('Укажите год издания');

Readln(g);

Writeln('Укажите Издательство');

Readln(izd);

for i:=1 to n do

with a[I] do

if (avt=avtor) and (g=god) and (izd=Izdatel) then writeln('Книга "',Nazvanie,'", ',stranizy,'стр.');

Readln;

end.



<== предыдущая лекция | следующая лекция ==>
 | 
Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 242 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Стремитесь не к успеху, а к ценностям, которые он дает © Альберт Эйнштейн
==> читать все изречения...

749 - | 748 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.