Основи програмування та алгоритмічні мови

Автор работы: Пользователь скрыл имя, 22 Марта 2012 в 09:17, курсовая работа

Краткое описание

Алгоритмічна мова високого рівня Паскаль отримала свою назву в честь французького математика 17 ст. Блеза Паскаля, який був творцем першої механічної обчислювальної машини («суматор Паскаля»). Автор мови – Ніклаус Вірт створив його у 1970 році як інструмент для навчання студентів навичкам програмування. З кожною версією в мову Паскаль додавалися нові можливості. Перше діалогове середовище підготовки та виконання програм на мові Паскаль було створено у 1983 році.

Содержание работы

Вступ
І. Алгоритмічна мова Паскаль
1. Загальні відомості про мову Паскаль
2. Типи даних
3. Структура програми мовою Паскаль
II. Програми, виконані на мові Паскаль
1. Меню, яке відкриває всі наступні програми
a) код меню;
b) робота меню.
2. Задача 1.
a) умова задачі
b) блок-схема
c) код програми
d) робота програми
3. Задача 2.
a) умова задачі
b) блок-схема
c) код програми
d) робота програми
4. Задача 3.
a) умова задачі
b) блок-схема
c) код програми
d) робота програми
Використана література

Содержимое работы - 1 файл

Курсова на четвер.doc

— 168.50 Кб (Скачать файл)


МІНІСТЕРСТВО КУЛЬТУРИ І ТУРИЗМУ УКРАЇНИ

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ КУЛЬТУРИ І МИСТЕЦТВ

КАФЕДРА КОМП’ЮТЕРНИХ НАУК

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Курсова робота

 

з дисципліни «Основи програмування та          алгоритмічні мови»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Виконала:

студентка І курсу

групи КН-48

Ланевич С.С.

 

Прийняв:

К.Т.Н., доц. кафедри комп. наук

Прокудін Г.С.

 

             

Київ-2009


Зміст

 

Вступ

І. Алгоритмічна мова Паскаль

1.      Загальні відомості про мову Паскаль

2.      Типи даних

3.      Структура програми мовою Паскаль

 

II.          Програми, виконані на мові Паскаль

1.      Меню, яке відкриває всі наступні програми

a)     код меню;

b)    робота меню.

 

2.      Задача 1.

a)     умова задачі

b)    блок-схема

c)     код програми

d)    робота програми

 

3.      Задача 2.

a)     умова задачі

b)    блок-схема

c)     код програми

d)    робота програми

4.      Задача 3.

a)     умова задачі

b)    блок-схема

c)     код програми

d)    робота програми

 

Використана література
Вступ

 

Алгоритмічна мова високого рівня Паскаль отримала свою назву в честь французького математика 17 ст. Блеза Паскаля, який був творцем першої механічної обчислювальної машини («суматор Паскаля»). Автор мови – Ніклаус Вірт створив його у 1970 році як інструмент для навчання студентів навичкам програмування. З кожною версією в мову Паскаль додавалися нові можливості. Перше діалогове середовище підготовки та виконання програм на мові Паскаль було створено у 1983 році.
 

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

Метою навчання на мові Паскаль є засвоєння алгоритмів та ключових слів для подальшого успішної розробки програм та орієнтування у програмному середовищі.
І. Алгоритмічна мова Паскаль

 

1.       Загальні відомості про мову Паскаль

Паскаль (англ. Pascal) — високорівнева мова програмування загального призначення. Одна з найбільш відомих мов програмування, широко застосовується в промисловому програмуванні, навчанні програмуванню у вищій школі, є базою для великого числа інших мов. Був створений Ніклаусом Віртом в 1970, після його участі в роботі комітету розробки стандарту мови Алгол-68.

 

Паскаль був створений як мова для навчання процедурному програмуванню (хоча, по словах Вірта, мову не можна вважати лише учбовою, оскільки мова, непридатна для написання реальних програм, для навчання використовуватися не повинна). Назва мові дана на честь видатного французького математика, фізика, літератора і філософа Блеза Паскаля. Одна з перших мов, для яких була створена реалізація «на самому собі» — компілятор Паскаля був написаний на самому Паскалі. На початку 1970-х років для перенесення Паскаль - систем на різні апаратні платформи була створена система Pascal-P, у якій був єдиний компілятор Паскаля в проміжну мову (P-код) і для кожної платформи створювався швидкий інтерпретатор P-коди. Запозичення цієї системи привело до створення системи UCSD Pascal у Університеті Сан-Дієго (Каліфорнія, США), набагато пізніше за її ідею були запозичені творцями мови Java (байт-код, компіляція в байт-код, інтерпретатор байт-коду).

Найбільш відомою реалізацією Паскаля, що забезпечила широке поширення і розвиток мови є Turbo Pascal фірми Borland(що виросла потім в Borland Pascal для DOS/Windows і далі в Delphi), у якій використовувалися значні розширення мови. Завдяки появі розвинених діалектів, мова стала багатшою, але у відсутність галузевої стандартизації, втратив переносимість і спільність. Діалекти Паскаля, вживані в Turbo Pascal і Delphi стали де-факто стандартом через широку поширеність цих засобів розробки, і потім отримали подальший розвиток в рамках вільних проектів.

 

2.       Типи даних

 

Примітивні типи даних Паскаля: типи з плаваючою комою(real), цілі(integer) char, boolean і перерахування (конструктор нового типа, введений в Паскалі):

 

var { секция объявления переменных }

  r: Real;  { переменная вещественного типа }

  i: Integer;  { переменная целого типа }

  c: Char;  { переменная-символ }

  b: Boolean;  { логическая переменная }

  e: (apple, pear, banana, orange, lemon);  { переменная типа-перечисления }

Виділяється поняття порядкових типів даних (ordinal), до них відносяться цілі типи(знакові і беззнакові), логічний(boolean), символьний(char), типи, що перераховують, і тіпи-діапазони.

 

Порядкові типи задаються цілим числом(кодом), яке можна отримати за допомогою функції ord. Всі операції, що виконуються над порядковими типами, виконуються з їх кодами.

Діапазони містять підмножину значень інших порядкових типів:

var

  x: 1..10;

  y: 'a'..'z';

  z: pear..orange;

Для порядкових типів визначені операції inc,dec,succ,pred,ord, операції порівняння(=,>,<,=>,"=,<>), їх можна використовувати в операторах case, for(як лічильник циклу), як кордони масивів, для завдання елементів безлічі і типів-діапазонов.

 

У паскалі навідміну від С-подібних мов з типами boolean, char арифметичні цілочисельні операції не визначені.

var

  set1: set of 1..10;

  set2: set of 'a'..'z';

  set3: set of pear..orange;

У сучасному Паскалі для роботи з рядками використовується вбудований тип string, що підтримує операції конкатенації(+) і порівняння(>,<,=<>,>=,<=). Рядки порівнюються в лексикографічному порядку. Наприклад, рядки вважаються рівними якщо вони мають однакову довжину і коди всіх символів з однаковими індексами збігаються. Тип string [n] або просто string у діалектах мови 1970-х — 1990-х рр. визначався у вигляді масиву символів array [0..n] of char (n за умовчанням набувало значення 80 в UCSD Pascal і 255 в Turbo/Borland Pascal), код нульового символу при такій виставі служить для завдання довжини рядка, відповідно рядок міг мати максимальний розмір 255 символів.

 

Файлові типи в Паскалі діляться на тих, що типізуються, текстові і файли без типів. Як показано в наведеному вище прикладі, файли, що типізуються, в Паскалі — це послідовності однотипних елементів. Для кожного файлу існує змінна-покажчик на буфер, яка позначається f^. Процедури get (для читання) і put (для запису) переміщають покажчик до наступного елементу. Читання реалізоване так, що read(f, x) представляє собою те ж, що і get(f); x:=f^;. Відповідно, запис реалізований так, що write(f, x) представляє собою те ж, що і f^ := x; put(f); Текстові файли text визначені як розширення типа file of char і окрім стандартних операцій над файлами(читання, запис символу), що типізуються, дозволяють здійснювати символьне уведення-виведення у файл всіх типів даних аналогічно консольному вводу-виводу.

Файли без типів оголошуються як змінні типа file. З ними можна проводити операції побайтового нетипізованого вводу-виводу по декілька блоків байт вказаної довжини через буфер, для цього служать спеціальні процедури blockread і blockwrite.

 

 

3.       Структура програми мовою Паскаль

 

Структура програми складається з частини опису та операторної частини. Частина опису містить:

розділ констант: const ім’я_константи=значення;

розділ типів: type ім’я_типу=значення_типу;

розділ змінних: var ім’я_змінної:тип;

розділ процедур (функций): procedure ім’я_процедури(параметри);

begin . . . end;

Операторна частина містить оператори мови Паскаль відповідно до алгоритму:

begin оператори; end.

  


II.                Програми, виконані на мові Паскаль

 

Меню, яке відкриває всі інші програми

 

uses crt,dos;

 

const              items:array[1..5,1..4] of string =

              (

   (' Program_1',' Program_2',' Program_3 ',' Exit '),

   (' Umova    ',' Umova    ',' Umova    ',''),

   (' Listing  ',' Listing  ',' Listing  ',''),

   (' Shema    ',' Shema    ',' Shema    ',''),

   (' Zapusk   ',' Zapusk   ',' Zapusk   ','')

        );

 

   w_dir='C:\PROGRA~1\BPASCAL\Lanevych\';

   c1=10; {Kolir vybranogo punktu}

   c2=5; {Kolir menu}

 

var     key:char;

        masl:array[1..4] of integer;

        x,y:integer;

        i,j:integer;

        file_name:string;

 

procedure vvod(str:string;x,y,color:integer);

begin

  textbackground(color);

  textcolor(white);

  if str <> '' then

     begin

                 gotoxy(x,y);

        write(str);

                 gotoxy(x,y);

     end;

end;

{---------------------------------------------------------------------------}

procedure clear(n:integer);

   var              i,j:integer;

begin

   for i:=2 to 5 do

     for j:=n to n+25 do

     begin

      textbackground(1);

      gotoxy(j,i);

      write(' ');

     end;

 

end;

 

 

procedure show_cond(j:integer);

  var s1:string;

begin

   Str(j,s1);

   file_name:=w_dir+'Zavd-'+s1+'.doc';

   exec('c:\progra~1\micros~2\office11\winword.exe',file_name);

end;

 

 

procedure show_source(j:integer);

  var s1:string;

begin

   case j of

      1: s1:='kvadr';

      2: s1:='Matrix';

      3: s1:='posl-st';

   end;

   file_name:=w_dir+s1+'.pas';

   exec('c:\Windows\notepad.exe',file_name);

end;

 

procedure show_sch(j:integer);

  var s1:string;

begin

   Str(j,s1);

   file_name:=w_dir+'Shema'+s1+'.doc';

   exec('c:\progra~1\micros~2\office11\winword.exe',file_name);

end;

 

procedure menu;

begin

   textbackground(9);

   clrscr;

   i:=1;

   masl[1]:=1;

   masl[2]:=length(items[1,1])+2;

   masl[3]:=masl[2]+length(items[1,2])+1;

   masl[4]:=masl[3]+length(items[1,3])+1;

 

   vvod(items[i,1],masl[1],i,c1);

   for j:=2 to 4 do  vvod(items[i,j],masl[j],i,c2);

 

   key:='0';

   j:=1;

   gotoxy(1,1);

end;

 

procedure pusk(j:integer);

  var s1:string;

begin

   case j of

      1: s1:='kvadr';

      2: s1:='Matrix';

      3: s1:='posl-st';

   end;

   file_name:=w_dir+s1+'.exe';

   exec(file_name,'');

   menu;

end;

 

 

BEGIN

   menu;

   while ord(key)<>27 do

   begin

     key:=readkey;

 

     if(ord(key)=77)  then    {--->}

     begin

       i:=1;

       clear(masl[j]);

       if j<4 then

       begin

         j:=j+1;

         vvod(items[i,j-1],masl[j-1],i,c2);

         vvod(items[i,j],masl[j],i,c1);

       end

              else

       begin

         j:=1;

         vvod(items[i,4],masl[4],i,c2);

         vvod(items[i,1],masl[1],i,c1);

       end;

     end;

 

     if(ord(key)=75)then    {<---}

     begin

       clear(masl[j]);

       i:=1;

       if j>1 then

       begin

         j:=j-1;

         vvod(items[i,j+1],masl[j+1],i,c2);

         vvod(items[i,j],masl[j],i,c1);

       end

              else

       begin

         j:=4;

         vvod(items[i,1],masl[1],i,c2);

         vvod(items[i,4],masl[4],i,c1);

       end;

     end;

 

     if (ord(key)=80) and (j<>4) then   {|}

     begin                              {|}

       x:=1;                            {V}

       while (items[x,j]<>'') and (x<6) do

       begin

         vvod(items[x,j],masl[j],x,c2);

         x:=x+1;

       end;

 

       if i<x-1 then

       begin

         i:=i+1;

         vvod(items[i-1,j],masl[j],i-1,c2);

         vvod(items[i,j],masl[j],i,c1);

       end

 

               else

       if j<>4 then

       begin

         vvod(items[i,j],masl[j],i,c2);

         i:=2;

         vvod(items[i,j],masl[j],i,c1);

       end;

     end;

 

     if (ord(key)=72) and (i<>1) and (j<>4) then

     begin

       if i>2 then

       begin

         i:=i-1;

         vvod(items[i+1,j],masl[j],i+1,c2);

         vvod(items[i,j],masl[j],i,c1);

       end

              else

       begin

         vvod(items[i,j],masl[j],i,c2);

         i:=x-1;

         vvod(items[i,j],masl[j],i,c1);

       end;

     end;

 

     if ord(key)=13 then

     begin

       if (j=4) and (i=1) then  key:=chr(27);

       case i of

         2: show_cond(j);

         3: show_source(j);

         4: show_sch(j);

         5: pusk(j);

       end;

     end;

 

   end;

END.

 

Робота меню:

 

 

ЗАДАЧА 1.

 

1.       Умова задачі

 

4. Дане натуральне число n. Серед чисел  1, …, n знайти такі числа, запис яких співпадає з останніми цифрами запису їх квадрату. Наприклад,  6 (6=36) тощо.


2.       Блок-схема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.       Код програми

uses crt;

var n,i,ai,ai1,x1,kc,ks:integer;

   x:longint;

begin

clrscr;

write('n=');

readln(n);

for i:=1 to n do

begin

ai:=i;

x:=sqr(ai);{исходное число и его квадрат}

kc:=0;ks:=0;

while ai>0 do{пока число не ноль}

begin

ai1:=ai mod 10;{последняя цифра числа}

  x1:=x mod 10;{последняя цифра квадрата}

kc:=kc+1;{считаем количество цифр в числе}

if ai1=x1 then ks:=ks+1;{если цифры одинаковые, считаем}

ai:=ai div 10;{число без последней цифры}

  x:=x div 10;{квадрат без последней цифры}

  end;

if ks=kc then

writeln(i);{если последние цифры совпадают, выводим число}

end;

readln;

end.


4.       Виконання програми

 

 

ЗАДАЧА 2.

 

1.                                     Умова задачі

21. Створити квадратну матрицю порядку n

 

    


2.                                                  Блок-схема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Информация о работе Основи програмування та алгоритмічні мови