У вас вопросы?
У нас ответы:) SamZan.net

варіантом завдання; після відлагодження програми виконати трасування програмиF8 виконання наступного оп

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

Лабораторна   робота  № 5. Програмування розгалуженого обчислювального процесу

  1.  Постановка завдання 
  2.  Скласти програми Сі для визначення значення узгідно з варіантом завдання;
  3.  після відлагодження програми виконати трасування програми(F8, виконання наступного оператора також F8), задавши набір вхідних даних для перевірки гілки then, а потім гілки else;
  4.  встановити точку останову(Ctrl+F8) на операторі if;
  5.  відкрити вікно для перегляду значення змінних програми Add Watch(Ctrl+F7, задати ім’я необхідної змінної);
  6.   повторно запустити програму на виконання.

Приклад виконання роботи

  1.  1. Постановка завдання скласти програму Сі для обчислення виразу

  1.  2. Математична постановка задачі(МПЗ).   

Вхідні дані

Дії

Вихідні дані

x  дійсного типу.

Якщо виконується 0x5,

тоді y=x2,

інакше y= cos x

y – дійсне.

a,b,x

введення даних

y

 0x5

y=x2

y=cos x

+

4.4.1 АМ-схема алгоритма

  1.  Тестовий приклад.

Для перевірки правильності МПЗ та складеної програми розглянемо таки випадки:

  1.  Умова axb виконується.
  2.  x=3 –> y=9;
  3.  x=0 –> y=0;
  4.  x=5 –> y=25;
  5.  Умова axb не виконується.
  6.  x=-4 –> y=-0,653644;
  7.  x=9  –> y=-0,911130;

  1.  Аналіз результатів роботи програми.

Вхідні дані

Розрахунок вихідних даних

вручну

Сі

x=3

9

9.0

x=0

0

0.0

x=5

25

25.0

x=-4

-0,653644

-0,653644

x=9

-0,911130

-0,911130

По всіх тестових прикладах розрахунки, що були отримані вручну та програмно співпадають, це доводить правильність роботи програми.

  1.  Опис програмного інтерфейсу з користувачем.

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

Після розрахунку на екран виводиться значення у.

Для завершення роботи програми необхідно натиснути будь-яку клавішу на клавіатурі.

4.5.1. АПМ -Текст програм Сі.

#include <stdio.h>

#include <conio.h>

#include <math.h>

main()

{

float x, y;

clrscr();

printf("Input x:");

scanf("%f", &x);

if (x>=0 && x<=5) y=pow(x, 2);

    else y=cos(x);

printf("\ny=%9.6f", y);

getch();

}

Варіанти завдань 1

  1.  

19

  1.  

20

  1.  

21

  1.  

22

  1.  

23

  1.  

24

  1.  

25

  1.  

26

  1.  

27

  1.  

28

  1.  

29

  1.  

30

  1.  

31

  1.  

32

  1.  

  1.  

  1.  

  1.  

       

4.1.2. Постановка завдання 

  1.  Скласти програми Сі з використанням оператору case(switch);
  2.  після відлагодження програми виконати трасування програми, задавши набір вхідних даних для перевірки гілки then, а потім гілки else;
  3.  відкрити вікно для перегляду значення вхідних змінних програми;
  4.  встановити точку останову на операторі case(switch);
  5.  виконати трасування програми для перевірки роботи оператора множинного розгалуження.

Рекомендації до виконання роботи

Як вже було вказано в завданні, при виконанні цієї роботи необхідно використовувати оператор множинного розгалуження ( в мові Сі – оператор switch – case - default ).

Бажано при написі програми використовувати також гілку else(default) для перевірки та видачі повідомлення про «неможливі» значення вхідних даних, навіть якщо це не передбачено в умові варіанту завдання.   

Приклад виконання роботи

Скласти програми Сі для виведення на екран повідомлення “молодша школа”, “середня школа”, “старша школа” в залежності від заданого номера класу.

4.1.2. Математична постановка задачі(МПЗ).

Вхідні дані

Дії

Вихідні дані

К – ціле

Обмеження:

К>0.

Якщо К співпадає з:

1..4, тоді вивести

молодша школа

5..9, тоді вивести

середня школа

10, 11, вивести

старша школа

інакше вивести

стільки не вчаться!!!

Примітка! Схему алгоритму дивися на наступній сторінці.

  1.  Тестовий приклад та аналіз результатів роботи програми.

Вхідні дані

Розрахунок вихідних даних

Сі

К=2

молодша школа

К=7

середня школа

К=10

старша школа

К=22

стільки не вчаться!!!

По всіх тестових прикладах отримані коректні вихідні повідомлення.

  1.  Опис програмного інтерфейсу з користувачем.

  1.  4.1.4. Алгоритмічна маодель схема алгоритма

4.4 Після запуску програми на екран виводиться повідомлення-запрошення про введення значення К. Необхідно ввести цілочисельне

Введення К

К

Стільки не вчаться

Молодша школа

Середня школа

Старша школа

1..4

5..9

10..11

+

-

додатне значення К. Після цього на екран виводиться повідомленні про шкільний рівень.

Для завершення роботи програми необхідно натиснути будь-яку клавішу на клавіатурі.

4.1.5. АПМ -Текст програм Сі.

#include <stdio.h>

#include <conio.h>

main()

{

short k;

clrscr();

printf("Введіть клас :");

scanf("%hd", &k);

switch (k) {

case 1:case 2:case 3:case 4:

printf("молодша школа "); break;

case 5:case 6:case 7:case 8:case 9:

printf("середня школа "); break;

case 10:case 11:

printf("старша школа "); break;

default: printf("стільки не вчаться!!!");

}

getch();

}

Варіанти завдань 2

  1.  За заданим номером місяця вивести кількість днів в ньому.
  2.  За заданим номером місяця вивести номер кварталу.
  3.  За заданим номером місяця вивести пору року.
  4.  За заданим номером місяця вивести перелік державних свят в ньому.
  5.  За заданим номером дня в тижні вивести його назву.
  6.  За заданим номером дня в тижні вивести повідомлення „робочий, вихідний”.
  7.  За заданим номером кварталу вивести перелік місяців.
  8.  За заданим номером дня в тижні вивести кількість пар за розкладом вашої групи.
  9.  Ввести пергу букву з ім’я людини, вивести перелік з трьох можливих імен. Наприклад, введено ‘a’, виводиться –“Андрій, Анна, Архип”.
  10.  В одному  будинку 20 квартир чотирьох типів: однокімнатна, двокімнатна, трикімнатна, чотирьохкімнатна. Було складено перелік:

№ квартири

Тип квартири

1,2,3,4, 16,17

однокімнатна

5,7,9,12,13

двокімнатна

6,8,10,14,15

трикімнатна

11,18,19,20

чотирьохкімнатна

Отже, за введеним номером квартири вивести її тип.

  1.  За першою буквою з назви дисципліни вивести її напрямок підготовки(технічні, природничі, гуманітарні).
  2.  За першою буквою з назви оператора мобільного зв’язку вивести його повну назву.
  3.  За кодом пакету мобільного зв’язку вивести назву оператора. Наприклад, (0) 50, (0) 66 – UMC.
  4.  За першою буквою з назви оператора мови С, вивести його повний синтаксис. Наприклад, задана буква ‘i’, вивести – ‘if умова then дія1 else дія2;’.
  5.  За першою буквою з оператора мови Сі вивести, до якого типу обчислювального процесу він відноситься(розгалужений та циклічний).
  6.  За першою буквою з назви міста вивести країну. Перелік міст: Київ, Москва, Тула, Харків, Париж, Ліон, Генуя, Рівно, Норильськ, Венеція, Одеса.
  7.  За першою буквою з назви області України вивести в якій стороні світу відносно Києва вона знаходиться. Перелік областей: Львівська, Житомирська, Крим, Луганська, Донецька, Рівненська, Харківська, Одеська.
  8.  За введеним знаком арифметичної операції вивести її пріоритет.
  9.  За першою буквою з назви функції з бібліотеки math.h вивести її клас(степенева, логарифмічна, тригонометрична, визначення модуля).
  10.  За першою буквою з назви марки автомобіля вивести країну виробника.
  11.  За номером кольору в веселці вивести повідомлення, чи відноситься він до теплих чи холодних кольорів(таплі – червоний, жовтий і т.п., холодні – синій, голубий і т.п.).
  12.  Визначити пору року за заданим номером місяця вивести .
  13.  Визначити за заданим номером місяця перелік державних свят в ньому та вивести .
  14.  Визначити за заданим номером дня в тижні вивести його назву.
  15.  Визначити за заданим номером дня в тижні вивести повідомлення „, вихідний,  робочий, середина робочого тиждня ”.
  16.  Визначити за заданим номером кварталута вивести перелік місяців.
  17.  Визначити за заданим номером дня в тижні вивести кількість занять пар за розкладом вашої групи.
  18.  Визначитиз за першою буквою з назви функції з бібліотеки stdio.h вивести її призначення (введення, виведення).
  19.   Визначити за першою буквою з назви тип літака вивести країну виробника.
  20.  За першою буквою з назви міста вивести область. Перелік міст: Київ, Горловка, Симеіз, Харків, Тернопіль, Джанкойн, Кривий Ріг, Рівно, Одеса, Гайсин, Миргород, місце проживання студента


4.1.3. Постановка завдання

Скласти програми  Сі для перевірки, чи належить точка з координатами (х, у) до заданої області(див. варіанти завдань).

Рекомендації до виконання роботи.

4.2.3. В математичній постановці задачі необхідно визначити:

  1.  Рівняння прямих та кола, що обмежують задану область.

Для прямої рівняння визначається за формулою:

,

де x1, y1, x2, y2 – координати двох точок, що належать прямій.

Для кола:

де xс, yс – координати центра, R – радіус.

  1.  Скласти логічний вираз істинний, коли точка з координатами (х,у) належить заданій області.

Приклад виконання роботи

В якості приклада буде розглянуто математичну постановку задачі(МПЗ) для двох варіантів областей, що задані на рис 1. та рис.2. Інші пункти прикладу виконання роботи будуть продовжувати МПЗ для рис. 1.

  1.  

3

2

5

X

Y

Рис. 1

Математична постановка задачі.

Приклад 1(рис. 1)

Задана на рис. 1 область обмежена колом, центр якого знаходиться в точці (3, 2) і радіусом 2 та прямою, що проходить через пару точок (3, 4), (5, 2).

  1.  Рівняння кола буде:

  1.  Рівняння прямої буде:

Після перетворень отримуємо: .

  1.  Отже, для того щоби точка з координатами (х, у) потрапила в задану область, вона повинна, по-перше бути всередині кола, тобто її координати повинні задовольняти умові:

По-друге, для того щоби потрапити в задану область точка повинна бути нижче прямої, отже, її координати повинні задовольняти умові:

  1.    Враховуючи те, що наведені умови повинні виконуватися одночасно, для побудови загального логічного виразу їх необхідно об’єднати логічним “І”( математична операція – кон’юнкція ).    

  

Приклад 2(рис. 2)

2

2

4

X

Y

Рис. 2

Задана на рис. 2 область обмежена трьома прямими, які описуються рівняннями:

y=2, y=0, x=4,

та півколом з координатами центру (2,2) і радіусом 2.

Рівняння кола буде:

Точка з координатами (х, у) буде належати заданій області, якщо вона потрапляє в коло, тобто виконується умова:

,

або до прямокутника, для якого виконуються умови:

x2  x4  y0  y4.

Ці чотири умови об’єднані кон’юнкцією (логічне “І”) тому, що кожна з них повинна виконуватися для того, щоби точка за координатами (х, у) потрапляла всередину прямокутника.

Отже, точка належить області заданій на рис. 2, якщо вона потрапляє АБО до кола, АБО до прямокутника. Ці дві умови можна об’єднати в один логічний вираз операцією диз’юнкції  (логічне “АБО”):

(x2  x4  y0  y4).

Вхідні дані

Дії

Вихідні дані

x, y – координати точки дійсного типу.

Якщо виконується

 ,

тоді вивести на екран

Належить

інакше вивести на екран

Не належить

x,y

Належить

+

Не належить

  

4.4.3 АМ

  1.  Тестовий приклад.

Для перевірки правильності МПЗ та складеної програми розглянемо таки випадки:

Умова виконується.

  1.  x=3, y=1;
  2.  x=3, y=4;
  3.  x=4, y=2.

Умова  не виконується.

  1.  x=4.5; y=3;
  2.  x= 1, y=1;
  3.  x=6, y=5.

  1.  Аналіз результатів роботи програми.

Вхідні дані

Розрахунок вихідних даних

вручну

Сі

x=3, y=1

Належить

Належить

x=3, y=4

Належить

Належить

x=4, y=2

Належить

Належить

x=4.5; y=3

Не належить

Не належить

x= 1, y=1

Не належить

Не належить

x=6, y=5

Не належить

Не належить

По всіх тестових прикладах результати, що були отримані вручну та програмно співпадають, це доводить правильність роботи програми.

. Опис програмного інтерфейсу з користувачем.

Після запуску програми на екран виводиться повідомлення-запрошення про введення значення координат точки (х, у). Необхідно ввести дійсне значення. Обмежень на значення х не встановлюється.

На екран виводиться повідомлення ”належить” чи “не належить” в залежності від результатів перевірки.

Після виведення результатів на екрані з’являється повідомлення:

“Для виходу з програми нажміть  ESC”.

Для продовження роботи програми необхідно натиснути будь-яку клавішу на клавіатурі, для виходу з програми – <ESC>.


4.5.3. АПМ -Текст програм Сі.

#include <stdio.h>

#include <conio.h>

#include <math.h>

main()

{

float x, y;

do

{

clrscr();

printf("Введіть координати (x, у): ");

scanf("%f%f", &x, &y);

if (pow(x-3, 2)+pow(y-4, 2)<= 4 && x<=5)

printf(“Належить\n”);

    else printf(“Не належить\n”);

printf("Для виходу нажміть ESC");

}

while (getch() != 27);

}


Варіанти завдань 3


4.1.4. Постановка завдання

  1.   Скласти програми Сі для обробки натиснення клавіш на клавіатурі:
  2.  вивести на екран повідомлення ‘ESC’, ‘Enter’, ‘Прогалина’, ‘TAB’ в залежності від натиснутої клавіші. Бажано, в програмі ввести константи для кодів відповідних клавіш: ESC=#27, ENTER=#13, SPACE=#32, TAB=#9.
  3.  вивести на екран коди алфавітно-цифрових клавіш і перевірити, чи співпадають вони з кодами символів в таблиці ASCII – кодів.
  4.  вивести на екран повідомлення “Простий код” або “Розширений код” та безпосередньо код в залежності від натиснутої клавіші.

Рекомендації до виконання роботи

В залежності від типу клавіатури на ній можуть бути розташовані 83/84, 101/102, 122 клавіші. Але принцип розташування та призначення основних клавіш на всіх типах клавіатури однакові.

При натисненні або відпусканні клавіші на клавіатурі генерується електричний сигнал, який розпізнається контролером клавіатури. Контролер клавіатури передає код відповідної клавіші(скен-код) для подальшої обробки. В залежності від типу клавіші генеруються прямі або розширені коди.

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

Розширений скен-код займає два байти: старший – нульовий, молодший – код клавіші.

старший байт

молодший байт

00

код клавіші

Алфавітно-цифрова група клавіш та клавіші Esc, Tab, BackSpace, Enter, пробіл(Space), клавіші правої цифрової групи (крім Del) повертають прямі скен-коди (рис. 3).

Функціональні клавіші та клавіші управління курсором повертають розширені скен-коди.

Зсувні клавіші Shift, Ctrl, Alt, клавіші CapsLock (фіксування режиму прописних букв) та NumLock(фіксування режиму введення цифр), PrintScrn(друк екрану), ScrollLock(блокування прокрутки екрану), Pause/Break(переривання команди) не повертають кодів.

Але якщо зсувні клавіші використовуються в комбінаціями з клавішами алфавітно-цифрової клавіатури, вони повертають розширений скен-код. Наприклад, якщо натиснути на клавіатурі кнопку з латинською буквою ‘a’, буде повернений код 97, при натисканні Shift+a буде повернений код 65 – це символ  ‘А’.

Esc 27

12 функціональних клавіш (розширений код)

Панель індикаторів

Back spase 8

NL

Tab

9

Алфавітно-цифрові клавіші

Клавіші управління

(розширений код)

Права цифрова група клавіш

Caps

Lock Ø

Enter 13

Shift Ø

Shift

Ctrl Ø

Alt Ø

SPACE (“Any key”)

32

Alt Ø

Ctrl Ø

Del

Рис. 3 Загальна схема розташування клавіш

Клавіши управління курсором

(розширений код)

Права цифрова група клавіш (прямий код)

Print Scrn

Scroll Lock

Pause Break

Num Lock

/

*

Ø

Ø

Ø

Ø

47

42

45

Insert

Home

PgUp

Home

PgUp

+

82

71

73

55

56

57

43

Delete

End

PgDn

83

79

81

52

54

End

PgDn

Enter

72

49

50

51

13

Ins

Del

75

80

77

48

00:83

Рис. 4. Розташування та коди клавіш управління курсором та правих цифрових.

Для обробки в програмі сигналів від клавіатури можна скористатися такими функціями:

Мова прогр.

Функція

Призначення

Бібліо-тека

Сі

char getch();

–––“”–––

conio.h

*– не для всіх клавіш на клавіатурі є відповідні символи, наприклад ESC(простий скен-код 27, в ASCII-таблиці не позначений), тому для перетворення числового коду в його символьний еквівалент  в Паскаль-програмі використовується такий запис:

Сі-програма розглядає символьні дані, як числові, тому, наприклад, символ ‘a’ та його код 97 з точки зору Сі-програми не розрізняються.

Для отримання інформації про натиснуті клавіші у програмі необхідно оголосити символьну змінну і присвоювати їй значення, що повертає функція ( getch() ).

#include <conio.h>

main()

{  char c;

c=getch();

}

Але це спрацьовує, якщо клавіша повертає простий скен-код. Якщо клавіша повертає розширений скен-код, необхідно двічі звертаися до функції ( getch() ): перший раз для зчитування старшого байту #0(або просто 0 в Сі), вдруге для зчитування молодшого байту – коду. Узагальнений фрагмент програми для зчитування і простих і розширених кодів буде:

#include <conio.h>

main()

{  char c;

c=getch();

if (c= =0) c=getch();

…/* подальша обробка коду */

}

Зазвичай тестування будь-якої програми потребує багатократного запуску, що вщент виснажує розробника :-). Можна додати до тексту програми оператор циклу з пост-умовою, в якому наприкінці виводити приблизно таке повідомлення: ‘Для виходу натисніть ESC, для продовженя будь-яку клавішу’, а в рядку-завершенні циклу звертатися до getch()) і перевіряти код на ESC.

… … …  /*препроцесування */

main()

{

do

{

…  … … /* текст програми */

printf("\n Для виходу натисніть ESC, для продовженя будь-яку клавішу \n");

}

while (getch() != 27);


Приклади програм

Завдання:

  1.  вивести на екран повідомлення “Простий код” або “Розширений код” та безпосередньо код в залежності від натиснутої клавіші.

#include <stdio.h>

#include <conio.h>

main()

{

int c;

clrscr();

do

{

printf("Натисніть клавішу\n");

c=getch();

if (c==0)

{

c=getch();

printf("Розширений код>>>%d", c);

}

else

printf("Код клавіші >>>%d\n", c);

 

printf("\n <ESC> для виходу або будь-яку клавішу для продовження \n");

}

while (getch() != 27);

}




1. реферату- ВитинанкиРозділ- Культура Витинанки Витинанки один із видів українського народного декоратив
2. Бюджетно-налоговая политика
3. размышление о труде учителя Выполнила Мельникова Татьяна Николаевна учитель русского языка и лите
4. Методические рекомендации для студентов по защите сестринской истории болезни- Сообщите где Вы проходил
5. Термопласты полимерные материалы способные обратимо переходить при нагревании в высокоэластичное либо
6. Дискурс сексуальности
7. На тему- Шлунковокишкова кровотеча Студентки 8 групи 2 медичного факультет
8. Курсовая работа- Разработка имитационной модели транспортной сети
9. Взвешивания. Имеется три внешне одинаковые монеты
10. РОМАШКА Время проведения- основной период смены Возраст- в данном од есть разграничения по возрастам по
11. Проблемы муниципальных образований1
12. животноподобные здесь являются необходимой причиной или предпосылкой а мышление ~ следствием или резуль
13. Тема- Характер. Слово характер в переводе с греческого означает печать чеканка
14. корреспондент РАН профессор ректор СПбНИУ ИТМО С
15. Вешние воды Источник- http---ldebrn
16. SVON NTUREL Адрес 305000 г
17. ДИПЛОМНА РОБОТА Місце та роль УКГЦ в процесі національнодуховного становлення Підволочиського краю Зм
18. Золотая осень И
19.  Практический навык- оценка биохимического исследования крови Общий билирубин ~ 205 мкмоль-л Прямой ~ 170 м
20. Что Где Когда проведенное 23го февраля Молодежным Парламентом