Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практичні алгоритмізація дл студ.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
6.12 Mб
Скачать

Лабораторна робота №14. Тема: Арифметика в с. Використання операцій рівності і відношення

Мета: Навчитися використовувати арифметичні функції в програмних кодах на мові програмування С.

Хід роботи

1. Напишіть програму на С: складання двох цілих чисел.

Наступна програма, яку ми зараз виконаемо, використовує стандартну бібліотечну функцію scanf, щоб вважати два цілих числа, введені користувачем з клавіатури, необхідно обчислити суму їх значень і надрукувати результат, використовуючи функцію рrintf. Напишіть код програми .

/ * Програма складання * /

# іnсlude <stdio.h>

є директивою для препроцесора С.

Рядок, що починається символом #, виконується препроцесором до того, як програма почне компілюватися. Цей специфічний рядок повідомляє препроцесору, що необхідно включити в програму вміст стандартного заголовного файлу вводу / виводу (stdio.h).

main ()

{

int integer1, integer2, sum;

/ * оголошення * /

Рядокint integer1, integer2, sum; є оголошенням. Групи символів integer1, integer2 і sum - імена змінних.

printf ("Enter first integer \ n");

/ * підказка * /Оператор

printf ("Enter first integer \ n"); друкує на екрані символи Enter first integer і переводить курсор на початок наступного рядка. Таке повідомлення називається запрошенням або підказкою, так як пропонує користувачеві зробити певні дії.

scanf ("% d", & integer1);

/ * прочитати ціле *. /Оператор

scanf ("% d", & integer1);викликає scanf, щоб отримати від користувача якесь значення. Функція seanf зчитує дані з стандартного пристрою введення, яким зазвичай є клавіатура. У нашому випадку функція scanf має два аргументи,% d і & integer1.

printf ("Enter second integer \ n");

/ * підказка * /

Оператор printf ("Enter second integer \ n"); друкує на екрані повідомлення Enter second integer, після чого переводить курсор на початок наступного рядка. Він також пропонує користувачеві зробити певні дії.

scanf ("% d", & integer2);

/ * прочитати ціле * /

Оператор scanf ("% d", & integer2); отримує від користувача значення для змінної integer2.

sum = integer1 + integer2;

/ * привласнити суму * /

В результаті виконання оператора присвоювання sum = integer1 + integer2; обчислюється сума змінних integer1 і integer2, і її значення присвоюється змінній sum допомогою операції присвоювання =. Оператор читається як «sum отримує значення integer1 + integer2». Більшість обчислень виконуються за допомогою операції присвоювання. Операція = і операція + називаються двомісними операціями тому, що кожна має по два операнда. У разі операції + двома операндами є integer1 і integer2. А в разі операції = двома операндами є sum і значення виразу integer1 + integer2.

printf ("Sum is% d \ n", sum);

/ * надрукувати суму * /

Оператор

printf ("Sum is% d \ n", sum);викликає функцію printf, щоб надрукувати на екрані текст Sum is, після якого слідує числове значення змінної sum. В даному випадку printf має два аргументи, "Sum is% d \ n" і sum. Перший аргумент - керуючий рядок, визначає формат виводу. Він містить кілька символів, які будуть відображені, і специфікатор перетворення % d, що визначає, що буде надруковано ціле число. Другий аргумент задає значення, яке буде надруковано. Відзначимо, що специфікатор перетворення для цілого однаковий як для printf, так і для scanf. Це справедливо для більшості типів даних в С. Обчислення можуть виконуватися і безпосередньо всередині оператора printf. Ми могли б скомбінувати два попередні оператора в один: printf ("Sum is% d \ n", integer1 + integer2).

return 0;

/ * показує успішне завершення програми * /

Оператор return 0;

передає значення 0 середовищу операційної системи, в якій виконувалася програма. Для операційної системи це означає, що програма завершена успішно. Щоб дізнатися, як повідомити про які-небудь збої в програмі, вивчіть керівництво по використовуваної вами вашої операційної системи.

}

Права фігурна дужка означає, що функція main закінчена.

Результат:

Enter first integer

45

Enter second integer

72

Sum is 117

2. Напишіть програму додаючи два числа: перше число це число дня вашого народження, а друге – це число місяця вашого народження.

3. Дослідити написання і виконання програмного коду що наведений нижче. Порівняйте дату народження вашу власну і сусіда за партою, та в результаті виконання програми визначіть хто з вас і наяку кількість днів старший або молодший.

/* Застосування операторів if операцій відношення і операцій рівності */

#include <stdio.h>

main ()

{

int num1, num2;

printf("Enter two integers, and I will tell you\n");

printf("the relationships they satisfy: ");

scanf("%d%d", &num1, &num2); /* прочитати два цілих */

if (num1 = = num2)

printf("%d is equal to %d\n", num1, num2);

if (num1 != num2)

printf("%d is not equal to %d\n", num1, num2);

if (num1 < num2)

printf("%d is less than %d\n", num1, num2);

if (num1 > num2)

printf("%d is greater than %d\n", num1, num2);

if (num1 <= num2)

printf("%d is less than or equal to %d\n", num1, num2);

if (num1 >= num2)

printf ("%d is greater than or equal to %d\n", num1, num2);

return 0; /* показує успішне завершення програми */

}

Enter two integers, and I will tell you

the relationships they satisfy: 3 7

3 is not equal to 7

3 is less than 7

3 is less than or equal to 7

Enter two integers, and I will tell you

the relationships they satisfy: 22 12

22 is not equal to 12

22 is greater than 12

22 is greater than or equal to 12

Enter two integers, and I will tell you

the relationships they satisfy: 7 7

7 is equal to 7

7 is less than or equal to 7

7 is greater than or equal to 7

Ця програма, використовує шість операторів if, щоб порівняти два введених користувачем числа. Якщо умова в будь-якому з операторів істинно, то виконується оператор printf, пов'язаний з цим if. Три варіанти виводу в результаті її виконання показані нижче.

Помітимо, що програма написана нижче використовує scanf, щоб ввести два числа. Кожній специфікації перетворення відповідає аргумент, в якому зберігатиметься введене значення.

Перша специфікація %d перетворить значення, яке повинне зберігатися в змінній num1, а друга специфікація %d перетворить значення, яке зберігатиметься в змінній num2. Зміщуючи управо тіло кожного оператора і поміщаючи порожні рядки згори і знизу від нього, ми полегшуємо сприйняття програми. Помітимо також, що кожен оператор в програмі містить у своєму тілі єдиний оператор.

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

Старшинство і асоціативність розглянутих на даний момент операцій

Операція

Асоціативність

()

зліва направо

* / %

зліва направо

+ -

зліва направо

< <= > =>

зліва направо

= = ! =

зліва направо

=

зправа наліво

Порядок, в якому повинні виконуватися оператори, - тобто контролювати те, що називається потоком управління. Таблиця 2

Зарезервовані слова

Ключові слова С

auto

break

case

char

const

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while