Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Задача
Предмет:
Програмування

Частина тексту файла (без зображень, графіків і формул):

Зміст Вступ 4 1. Загальна постановка завдання для курсової роботи 5 2. Опис алгоритму розв’язання поставлених задач 7 3. Блок-схеми розв’язання задач. 8 4. Текст програми мовами програмування Паскаль та Сі. 13 5. Результати роботи програм і скріншоти виконання програм 20 5.1 В средовищі С 20 5.1 В средовищі Pascal 23 Висновки 27 Список джерел інформації 28 Вступ Pascal — алгоритмічна мова програмування універсального призначення. Існують діалекти мови з підтримкою об'єктно-орієнтованого програмування. В 1990 році було затверджено стандарт ISO 7185:1990, «Pascal», та ISO 10206:1990 «Extended Pascal». Turbo, а пізніше Borland Pascal— це одна з найвдаліших та найпоширеніших реалізацій мови Pascal, створена компанією Borland.Turbo Pascal — розширення американського стандарту (ANSI Pascal), яке враховує архітектурні особливості MS-DOS та MS Windows і постачається зі значними за обсягом і різноманітності пакетами стандартних процедур. Такі принципові нововведення, як апарат модулів і об'єктно-орієнтовані засоби полегшують конструювання великих програмних систем на основі технології модульного програмування. Компілятор Turbo Pascal працює за однопрохідною схемою, реалізує функції редагування зв'язків, формуючи на виході готовий до виконання об'єктний код. Компілятор може здійснювати широкий набір локальних оптимізацій (згортання констант, виключення невикористовуваного коду і зайвих даних, оптимізація операцій і т. д.), що сприяє високій ефективності кінцевих програм. C (англ. C) — універсальна, процедурна, імперативна мова програмування загального призначення, розроблена у 1972році Денісом Рітчі у Bell Telephone Laboratories з метою написання нею операційної системи UNIX. Хоча С і було розроблено для написання системного програмного забезпечення, наразі вона досить часто використовується для написання прикладного програмного забезпечення. С, ймовірно, є найпопулярнішою у світі мовою програмування за кількістю вже написаного нею програмного забезпечення, доступного під вільними ліцензіями коду та кількості програмістів, котрі її знають. Версії компіляторів для мови С існують для багатьох операційних систем та апаратних архітектур. C здійснила великий вплив на інші мови програмування, особливо на C++, яка спочатку проектувалася, як розширення для С, а також на Java та C#, які запозичили у С синтаксис. 1. Загальна постановка завдання для курсової роботи Скласти програмні комплекси мовами програмування Pascal та С для розв’язання та виконання поставлених завдань, згідно індивідуального варіанту: перший програмний комплекс складається мовою програмування Pascal та повинен містити графічний інтерфейс з варіантами вибору подальшої роботи: Основне меню вибору: Заголовок. Завдання №1. Завдання №2. Вихід. Причому кожен пункт основного меню повинен містити свої власні підпункти, згідно постановки кожного окремого завдання; другий програмний комплекс складається мовою програмування С, але з використанням інтерфейсу в звичайному текстовому режимі; пункт Заголовок повинен виводити на екран відомості про автора даної роботи, вид цієї роботи, її тему та номер індивідуального варіанта. Дана інформація виведення повинна бути оформлена у вигляді підпрограми; пункт Завдання №1 має містити наступні підпункти: умова завдання №1; створення файлу з табуляцією функції; (табуляція полягає в тому, що створюється таблиця, яка має наступний вигляд: Х Y        … …  Причому обчислення функції проводиться в окремій підпрограмі-функції з вказаним кроком); виведення табуляції функції на екран; графік функції (на екран виводиться графік відповідної функції в Декартовій системі координат); пункт Завдання №2 має містити наступні підпункти: умова завдання №2; вміст файлу (виведення на екран вже існуючого файлу, в якому міститься інформація про вхідні дані для завдання №2); виведення графічного малюнку (виведення малюнків згідно поставленого завдання); кожен пункт меню передбачає повернення на основну сторінку. Вихід закриває всі вікна даної програми. Курсова робота повинна задовольняти одному із рівнів виконання: 1 рівень – програми не містять графічного та текстового інтерфейсу. Кожне поставлене завдання виконується в окремій програмі відповідною мовою програмування. 2 рівень – програмні комплекси містять не графічний, а текстовий інтерфейс-меню вибору подальшої роботи, інші умови курсової роботи виконуються. 3 рівень – виконано всі поставлені до курсової роботи завдання. Варіант 2 1. Виконати табуляцію параметрично заданої функції (Циклоїда), записати її у файл та вивести його на екран. Побудувати і вивести на екран монітора графік цієї функції:  ; a, b > 0; t ( (0; 2(). 2. У двох файлах задано координати протилежних вершин прямокутників, сторони яких розташовані вертикально або горизонтально. Координати вершин тих прямокутників, периметр яких більше середнього значення периметрів, перемістити в інший файл. Вивести на екран прямокутник, периметр якого найближчий до суми двох найменших прямокутників. 2. Опис алгоритму розв’язання поставлених задач Мітка «start»: Очищення екрану. Виведення текстового меню. Вибір пункту меню за допомогою введення потрібної цифри з клавіатури. Якщо введено «1», то відбувається виведення інформації про розробника програми за допомогою підпрограми «zagolovok», перехід до мітки «start» відбувається при натисненні будь-якої клавіші. Якщо введено «2», то відбуваються наступні дії: а) очищення екрану; б) відкриття файлу «kyrsov.txt» для запису; в) виведення тексту завдання №1; г) виведення тексту, який пропонує ввести значення кроку, сталих a та b. д) виведення шапки таблиці; е) запуск циклу з передумовою (t<2*π): - обчислення значень x та y; - запис файлу «kyrsov.txt»; - збільшення змінної t на крок p; - виведення таблиці значень; - кінець циклу. є) закриття файлу «kyrsov.txt»; ж) виведення тексту; з) при введенні клавіші «Введення» відбудеться очищення екрану. и) підключення графічного режиму; і) виведення осей Ox та Oy. ї) запуск циклу з передумовою (t<2*π): - обчислення значень x та y; - виведення точки ; - збільшення змінної t на крок 0,001; - кінець циклу. й) при натисненні будь-якої клавіші відбувається закриття графічного режиму та перехід до мітки «start». Якщо введено «3», то відбуваються наступні дії: а) очищення екрану; б) виведення тексту завдання №1; в) при введенні будь-якої клавіші відбудеться продовження дій; г) відкриття файлу «kurs1.txt» для читання; д) відкриття файлу «kurs2.txt» для читання; е) присвоєння початкових значень деяким змінним; є) запуск циклу з передумовою (не кінець файлу): - зчитування значень x, y, m, n з файлів «ktrs1.txt» та «ktrs2.txt»; - обчислення периметру; - обчислення суми периметрів; - обчислення суми прямокутників; - якщо периметр менший за мінімальний периметр, то відбувається переприсвоєння значень двох найменших периметрів; - кінець циклу. ж) обчислення значення середнього периметру та суми двох найменших периметрів; з) відкриття файлу «kurs3.txt» для запису; и) запуск циклу з передумовою (не кінець файлу): - зчитування значень x, y, m, n з файлів «kurs1.txt» та «kurs2.txt»; - обчислення периметру; - якщо периметр більший за середній периметр, то відбувається запис файлу «kurs3.txt»; - обчислення відхилення значення периметру та значення суми двох найменших периметрів; - якщо знайдене відхилення менше ніж попереднє, то відбувається запис нового відхилення та координат вершин прямокутника; - кінець циклу. і) закриття файлу «kurs1.txt»; ї) закриття файлу «kurs2.txt»; й) закриття файлу «kurs3.txt»; к) підключення графічного режиму; л) виведення прямокутника, периметр якого найближчий до суми двох периметрів найменших прямокутників; м) при натисненні будь-якої клавіші відбувається закриття графічного режиму та перехід до мітки «start». Якщо введено «4», то відбуваються вихід з програми. 3. Блок-схеми розв’язання задач.      4. Текст програми мовами програмування Паскаль та Сі. Pascal C  PROGRAM KP; uses crt,graph; type kyrsov=record i:real; j:real; end; label start; var f:file of kyrsov; f1,f2,f3:file of real; g:kyrsov; v,dg,dm,c,d,u,i,o,j:integer; p,a,b,t,x,y,m,n,Sp,S,pm,pmin,Sc,h,q,w,e,r,mo,ma:real; procedure zagolovok(m:char); begin clrscr; writeln('Kyrsova robota:'); writeln('Avtor: Boyko Olexandr Volodumerovuch, grupa SP-146'); writeln('Variant 2'); end; Begin start: clrscr; writeln('1.Zagolovok'); writeln('2.Zavdannya 1'); writeln('3.Zavdannya 2'); writeln('4.Vuhid'); readln(v); case v of 1: begin zagolovok('1'); readln; goto start; end; 2: begin clrscr; assign(f,'kyrsov.txt');rewrite(f); writeln('Zavdannya 1:'); writeln('Vukonatu tabylyaciyu parametruchno zadanoi funcii'); writeln('(Cukloida), zapusatu ii y fail ta vuvestu yogo na ekran.'); writeln('Pobuduvatu i vuvestu na ekran monitora grafik ciei funcii:'); writeln('x=a*t-b*sin(t); y=a-b*cos(t); a,b>0; t e [0;2*pi].'); t:=0; writeln('Vvedit krok p: '); readln(p); writeln('VVedit znachennya a(a>0): '); readln(a); writeln('VVedit znachennya b(b>0): '); readln(b); writeln(' ___________________________________________'); writeln(' | | |'); writeln(' | X | Y |'); writeln(' |____________________|____________________|'); while (t<=2*3.14) do begin x:=a*t-b*sin(t); g.i:=x; y:=a-b*cos(t); g.j:=y; write(f,g); t:=t+p; if (x<10) then begin writeln(' | ',x:4:2,' | ',y:4:2,' |'); writeln(' |____________________|____________________|'); end else if (y<10) then begin writeln(' | ',x:4:2,' | ',y:4:2,' |'); writeln(' |____________________|____________________|'); end else begin writeln(' | ',x:4:2,' | ',y:4:2,' |'); writeln(' |____________________|____________________|'); end; end; close(f); writeln('Dlya vuvedennya grafika natusnit vvod'); readln; clrscr; dg:=detect; initgraph(dg,dm,''); Setcolor(9); Line(0,240,640,240); Line(320,0,320,480); t:=0; while (t<=2*3.14) do begin x:=a*t-b*sin(t); y:=a-b*cos(t); c:=trunc(x*5); d:=trunc(y*5); Putpixel(c+320,-d+240,15); t:=t+0.001; end; readkey; closegraph; goto start; end; 3: begin clrscr; writeln('Y dvoh failah zadano koordunatu protulegnuh vershun'); writeln('pryamokytnukiv, storonu yakuh roztashovani vertukalno abo'); writeln('horuzuntalno. Koordunatu vershun tuh pryamokytnukiv,'); writeln('perumetr yakuh bilshe serednogo znachennya perumetriv,'); writeln('peremistutu v inshuj fail. Vuvestu na ekran pryamokytnuk,'); writeln('perumetr yakogo najbluzhchuj do symu dvoh najmenshuh'); writeln('pryamokytnukiv'); readln; assign(f1,'kurs1.txt'); reset(f1); assign(f2,'kurs2.txt'); reset(f2); Sp:=0; pmin:=10000; pm:=10000; h:=0; mo:=20000; while not eof(f1) do begin read(f1,x); read(f1,y); read(f2,m); read(f2,n); p:=2*(abs(m-x)+abs(n-y)); Sp:=Sp+p; h:=h+1; if (p<pmin) then begin pm:=pmin; pmin:=p; end; end; Sc:=Sp/h; S:=pm+pmin; assign(f3,'kurs3.txt'); reset(f1); reset(f2); rewrite(f3); while not eof(f1) do begin read(f1,x); read(f1,y); read(f2,m); read(f2,n); p:=2*(abs(m-x)+abs(n-y)); if (p>Sc) then begin q:=x; w:=y; e:=m; r:=n; write(f3,q); write(f3,w); write(f3,e); write(f3,r); end; ma:=abs(S-p); if (mo>ma) then begin mo:=ma; u:=trunc(x); i:=trunc(y); o:=trunc(m); j:=trunc(n); end; end; close(f1); close(f2); close(f3); clrscr; dg:=detect; initgraph(dg,dm,''); bar(u,i,o,j); readln; closegraph; goto start; end; 4:end; End. #include <stdio.h> #include <math.h> #include <conio.h> #include <graphics.h> void func(void); void zagolovok(void) {clrscr(); printf("\n Kursova robota:"); printf("\n Avtor: Boyko Olexandr Volodumerovuch, grupa SP-146"); printf("\n Variant 2");} main () {int v,driver,mode,c,d,u,i,o,j; float p,a,b,m,n,Sp,S,pm,pmin,Sc,h,q,w,e,r,mo,ma,x,y,t; FILE *file,*f1,*f2,*f3; start: clrscr(); printf("\n 1.Zagolovok."); printf("\n 2.Zavdannya 1."); printf("\n 3.Zavdannya 2."); printf("\n 4.Vuhid.\n"); scanf("%d",&v); switch (v) {case 1: {zagolovok(); getch(); goto start;}break; case 2: {clrscr(); printf("\n Zavdannya 1:"); printf("\n Vukonatu tabylyaciyu parametruchno zadanoi funcii"); printf("\n (Cukloida), zapisatu ii y fail ta vuvestu yogo na ekran."); printf("\n Pobuduvatu i vivestu na ekran monitora grafik ciei funcii:"); printf("\n x=a*t-b*sin(t); y=a-b*cos(t); a,b>0; t e [0;2*pi].\n"); t=0; printf("\n Vvedit krok k: "); scanf("%f", &p); printf("\n VVedit znachennya a(a>0): "); scanf("%f", &a); printf("\n VVedit znachennya b(b>0): "); scanf("%f", &b); printf("\t _________________________________________"); printf("\t | | |\n"); printf("\t | X | Y |\n"); printf("\t | | |\n"); printf("\t |____________________|____________________|\n"); file = fopen("kyrsov.txt","wt+"); while (t<6.28) {x=a*t-b*sin(t); y=a-b*cos(t); fprintf(file,"%4.2f\t%4.2f\n",x,y); t += p; printf("\t | %10.4f | %10.4f |\n",x,y); printf("\t |____________________|____________________|\n");} fclose(file); printf("Dlya vuvedennya grafika natusnit vvod"); getch(); clrscr(); driver=DETECT; mode=0; initgraph(&driver,&mode,"C:\\TURBOC3\\BGI"); setfillstyle(1,10); line(0,240,640,240); line(320,0,320,480); t=0; while (t<6.28) {x=a*t-b*sin(t); y=a-b*cos(t); c=floor(x*5)+320; d=-floor(y*5)+240; putpixel(c,d,15); t+=0.01;} getch();closegraph(); goto start;} case 3: {clrscr(); printf("Y dvoh failah zadano koordunatu protulegnuh vershun\n"); printf("pryamokytnukiv, storonu yakuh roztashovani vertukalno abo\n"); printf("horuzuntalno. Koordunatu vershun tuh pryamokytnukiv,\n"); printf("perumetr yakuh bilshe serednogo znachennya perumetriv,\n"); printf("peremistutu v inshuj fail. Vuvestu na ekran pryamokytnuk,\n"); printf("perumetr yakogo najbluzhchuj do symu dvoh najmenshuh\n"); printf("pryamokytnukiv\n"); f1 = fopen("kurs1.txt","r"); f2 = fopen("kurs2.txt","r"); Sp=0; pmin=10000; pm=10000; h=0; mo=20000; while (!feof(f1)) {fscanf(f1,"%f\t%f\n",&x,&y); fscanf(f2,"%f\t%f\n",&m,&n); p=2*(abs(m-x)+abs(n-y)); Sp=Sp+p; h=h+1; if (p<pmin) {pm=pmin; pmin=p;}} fclose(f1); fclose(f2); f1 = fopen("kurs1.txt","r"); f2 = fopen("kurs2.txt","r"); Sc=Sp/h; S=pm+pmin; f3 = fopen("kurs3.txt","w"); while (!feof(f1)) {fscanf(f1,"%f%f",&x,&y); fscanf(f2,"%f%f",&m,&n); p=2*(abs(m-x)+abs(n-y)); if (p>Sc) {q=x; w=y; e=m; r=n; fprintf(f3,"%4.2f\t%4.2f\t%4.2f\t%4.2f\n",q,w,e,r);} ma=abs(S-p); if (mo>ma) {mo=ma; u=x; i=y; o=m; j=n;}} fclose(f1); fclose(f2); fclose(f3); getch(); clrscr(); driver=DETECT; mode=0; initgraph(&driver,&mode,"C:\\TURBOC3\\BGI"); bar(u,i,o,j); getch(); closegraph(); goto start;} case 4:break; default:printf("nevirnuj vvod");} return 0;}   5. Результати роботи програм і скріншоти виконання програм 5.1 Середовище С Меню  Заголовок  Результати виконання завдання 1 а) опис завдання  б) табуляція  в) виведення графіка  Результати виконання завдання 2 а) опис завдання  в) виведення прямокутника  5.1 Середовище Pascal Меню  Заголовок  Результати виконання завдання 1 а) опис завдання  б) табуляція  в) виведення графіка  Результати виконання завдання 2 а) опис завдання  в) виведення прямокутника  Висновки При виконанні даної курсової роботи я використав свої знання з програмування для виконання завдань. При складанні алгоритму я задіяв свої навички створення алгоритму, які здобув вивчаючи курс програмування, а також при виконанні лабораторних робіт. Блок-схеми були побудовані спираючись на створений алгоритм, застосовуючи знання з будування блок-схем. Перед безпосереднім створенням програми я створив математичну модель, за якою вивів потрібні для виконання завдання формули. Після цього почав писати програмний код на компіляторі Turbo Pascal, після написання програми я скомпілював програму, при цьому компілятор вказав на помилки, які я мав виправити. Виправивши всі помилки, програма скомпілювалась і я перевірив правильність виконання завдання. Потім почав писати програмний код на компіляторі Turbo С, після написання програми я скомпілював програму, при цьому компілятор вказав на помилки, які я мав виправити. Виправивши всі помилки, програма скомпілювалась і я перевірив правильність виконання завдання. Вдало виконавши обидві програми я зробив скріншоти кожного екрану програми. Під час виконання курсової роботи в мене виникли деякі проблеми. Одною з таких проблем було неправильний запис зміни аргументу t при виведенні графіка циклоїди. Замість «=+» я поставив «+=» і в мене замість графіка виводилася одна точка і відбувалося зациклення. В цілому ж проблем з виконанням завдання не виникало. Список джерел інформації Ушаков Д.М., Юркова Т.А. – «Паскаль для школьников.» – СПб.: Питер, 2010. – 256 с. Х. Дайтел, П. Дейлел – «Как програмировать на С». Ю. Федоренко – «Алгоритмы и программы на Turbo Pascal. Учебный курс» – Питер, 2001. – 240 с. Ю. А. Шпак – «Turbo Pascal 7.0 на примерах» – Юниор, 2003 – 496 с. Стивен Прата – «Язык программирования C. Лекции и упражнения» – Вильямс, 2013 – 960 с. Брайан Керниган, Деннис Ритчи – «Язык программирования C» – Вильямс,2009 – 304 с. Герберт Шилдт – «C/C++. Справочник программиста» – Вильямс, 2003 – 432 с.
Антиботан аватар за замовчуванням

06.11.2016 20:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!