Знакомство с языком программирования Паскаль

Автор: Пользователь скрыл имя, 25 Февраля 2013 в 10:13, курсовая работа

Описание работы

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

Содержание

Знакомство с языком программирования Паскаль.
Строки.
Функции и процедуры для работы со строками.
Файлы и работа с файловыми переменными.
5 . Программная часть.
5.1. Задание.
5.2. Блок-схема.
5.3. Код программы.
5.4. Пример работы.
6. Заключение.
7. Литература.

Работа содержит 1 файл

курсtim.doc

— 230.00 Кб (Скачать)

var st : String;

begin

122 Часть I. Ядро Турбо Паскаля

if stE] = "A1 then ..

end.

Самый первый байт в строке имеет  индекс о и содержит текущую длину  строки. Первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной строки можно осуществлять необходимые действия и таким  способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:

var

st : String;

l : Byte;

begin

i := ord(st[01); {i - текущая длина строки)

while (l о 0) and (st[i] = ' ') do

begin

dec(i);

st[0] :«chr(i)

end;

end.

Значение ORD (st [01), т. е. текущую длину  строки, можно получить и с помощью  функции LENGTH (st), например:

while (Length (st)<>0) and {s-t [.Length (Ы;) ] -' ') do

st[0] := chr(Length(st)-I)

К строкам можно применять операцию + (сцепление), например:

st := 'а1 + 'Ь';

st = st т 'с'; fst содержит' "aba"}

Если длина сцепленной строки превысит максимально допустимую длину 7V, то "лишние" символы отбрасываются. Следующая программа, например, напечатает символ i:

var

st: String ?1];

begin

st:-'123';

WriteLn(st)

end.

 

 

 

Программная часть

7) Дана строка, содержащая текст,  заканчивающийся точкой. Вывести  на экран слова, содержащие  три буквы.

Блок - схема 
Код программы

uses crt;

const n=2;

var

menu:array[0..n] of string[20];

men:array[0..n] of integer;

Nomer,i,j,old,key,m:integer;

ch:char;

f:text;

f_name:string;

procedure Glav;

begin

menu[0]:='Vvod dannih';men[0]:=10;

menu[1]:='Vivod';men[1]:=40;

menu[2]:='Vihod';men[2]:=60;

old:=n;

key:=0;

end;

procedure NewMeny(old,key:integer);

begin

TextBackGround(White);

TextColor(Black);

GoToXY(men[old],2);

writeln(menu[old]);

TextBackGround(Yellow);

TextColor(Red);

GoToXY(men[key],2);

writeln(menu[key]);

end;

procedure Window_a(x,y,t,m:integer);

begin

TextBackGround(White);

TextColor(Black);

for i:=x to t do

for j:=y to m do

begin

GoToXY(i,j);

writeln(' ');

end;

GoToXY(x,y);writeln('*'); GoToXY(t,y);writeln('*');

for i:=y+1 to m-1 do begin

GoToXY(x,i);writeln('*'); GoToXY(t,i);writeln('*');end;

GoToXY(x,m);writeln('*'); GoToXY(t,m);writeln('*');

for i:=x+1 to t-1 do

begin

GoToXY(i,y);writeln('*'); GoToXY(i,m);writeln('*');end;

end;

procedure Left;

begin

old:=key;

key:=key-1;

if key<0 then key:=n;

NewMeny(old,key);end;

procedure Right;

begin

old:=key;

key:=key+1;

if key>n then key:=0;

NewMeny(old,key);end;

procedure vvod;

var

s:string;

begin

TextBackGround(White);

TextColor(Black);

clrscr;

Window_a(20,2,45,4);

GoToXY(22,3);Write('Vvedite imya fayla=>');readln(f_name);

Assign(f,f_name);

Rewrite(f);

window_a(1,6,80,12);

gotoxy(22,7);

writeln('Vvedite text');

gotoxy(4,9);

readln(s);

writeln(f,s);

close(f);

end;

procedure vivod;

const L_word=10;

L_sent=100;

type t_word=string[L_word];

tn=0..L_sent;

t_sent=array[tn] of t_word;

var

sent:t_sent;

n_word:tn;

f:text;

ch:char;r:boolean;k:byte;

st:string[79];

function create_array(var sent:t_sent;var n_word:tn):boolean;

var s:char;

where:(in_word,out_word);

procedure end_Sent;

var c:char;

begin

repeat Read(f,c);

until (c='.')or (eof(f));

end;

begin

n_word:=0;

where:=out_word;

create_array:=true;

if Eof(f) then Exit;

repeat

Read(f,s);

case s of

'.':Exit;

'A'..'Z','a'..'z','0'..'9':

begin

case where of

in_word:

sent[n_word]:=sent[n_word]+s;

out_word:

begin

if n_word=L_sent then

begin

create_array:=false;

end_Sent;

Exit;

end;

n_word:=n_word+1;

sent[n_word]:=s;

where:=in_word  end;

end;

end;

else where:=out_word;

end;

until Eof(f);

end;

procedure Print_Word(sent:t_sent;n_word:tn;m:integer);

var i:1..L_sent;

begin

TextColor(Magenta);

for i:=1 to n_word do

if Length(sent[i])=m then writeln(sent[i]);delay(1000);writeln;

end;

begin clrscr;

window_a(20,2,60,6);

TextBackGround(0);

TextColor(White); gotoxy(22,3);

Write('Zadayte imya textovogo fayla =');

TextColor(White);

readln(st);

Assign(f,st);

{$I-}

Reset(f);

{$I+}

if(IOResult<>0) or (st='') then

begin

TextColor(Red); writeln; gotoxy(22,5);

Writeln('***ne nayden fail s takim imenem ',st);

readln;Halt

end;

TextColor(White);

window_a(1,7,80,13);  gotoxy(20,8);

Writeln('_Soderjimoye fayla:');

writeln;

TextColor(Magenta);gotoxy(5,10);

while (not Eof(f)) do

begin read(f,ch);delay(10);Write(ch);end;

writeln;

Reset(f);

while (not  eof(f)) do

begin

r:=create_array(sent,n_word);

TextColor(Magenta);

TextColor(White);

window_a(1,15,80,21);gotoxy(7,16);

Writeln('_Ocherednoye predlojeniye sostoit iz ',n_word,' slov');gotoxy(7,17);

writeln('Vvedite chislo dlya vibora slov');gotoxy(7,18); readln(m);

window_a(10,3,30,5);

gotoxy(11,4);

writeln('Slova iz ',m,' bukv:');writeln;

window_a(1,1,80,14);

gotoxy(15,2);

Print_Word(sent,n_word,m);

if r=false then

begin

TextColor(Red);

Writeln('***slov bolshe dopustimogo, posledniye ne uchitivayutsya.');

end;

TextColor(Red);gotoxy(10,15);

Writeln('_zakonchen prosmotr fayla');

end;end;

procedure EnterClick;

begin

case key of

     0:vvod;

     1:vivod;

     2:ch:=#27;

     end;

Window_a(1,1,80,3);

                   for i:=0 to n do

                   begin

                   TextBackGround(White);

                   TextColor(Blue);

                   gotoxy(men[i],2);

                   writeln(menu[i]);

                   end;

                   NewMeny(old,key);

end;

begin

     clrscr;

     TextBackGround(Black);

     clrscr;

     Glav;

     Window_a(1,1,80,3);

     for i:=0 to n do

     begin

     TextBackGround(White);

     TextColor(Blue);

     gotoxy(men[i],2);

     writeln(menu[i]);

     end;

     NewMeny(old,key);

     repeat

           ch:=readkey;

           case ch of

                #13:EnterClick;

                #75:left;

                #77:Right;

           end;

     until ch=#27;  end.

 

 

 

 

 

 

Заключение

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

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

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

 

Литература:

 

  1. «Экономическая информатика».Под ред.д.э.н., проф.В.В.Евдокимова. Санкт-Петербург, 1997. Изд. «Питер Паблишинг»

 

  1. Под ред. Проф. Н.И.Макаровой. «Информатика». : Финансы и статистика, 1997.

 

  1. IBM PC для пользователя. В.Э.Фигурнов. : Инфра-М.1996.

 

  1. Экономическая информатика и вычислительная техника. Под ред. В.П.Косарева и А.Ю.Королева. : Финансы и статистика.1996.

 

  1. Компьютерные технологии обработки информации. Под ред.С.В.Назарова.М.: Финансы и статистика. 1995.

Информация о работе Знакомство с языком программирования Паскаль