Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_лаб_Ч1_Си.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
543 Кб
Скачать
☆

Лабораторна робота № 1 Тема: “Режими компілювання”

Мета: навчитися набирати, редагувати та компілювати програми за допомогою інтегрованої системи програмування.

Теоретичні відомості

Компіляція модулів та програм може здійснюватися в трьох режимах Compile, Make і Build. Компіляція в режимі Compile закінчується створенням файлу з розширенням *.obj, а компіляція в режимах Make і Build закінчується створенням файлу з розширенням *.exe.

Режим Сompile. Виклик компілятора в режимі Сompile (Alt+F9 або Alt+C+C) призводить до компіляції модулю, що знаходиться в редакційному вікні.

Режим Make. Виклик компілятора в режимі Make (F9 або Alt+C+M) призводить до компіляції програми наступним чином:

  • якщо при виборі опції Project визначено ім’я проекту (Project name), що є ім’ям файлу з розширенням *.prj, то програма складається з модулів, імена яких виділені в цьому файлі, доповнених бібліотечними функціями бібліотек з розширенням *.lib, а також функціями з стандартної бібліотеки. Наприклад:

  • якщо ім’я проекту не визначено, але визначено ім’я первинного файлу (Primary file), що є ім’ям файлу з розширенням *.сp, то програма складається з модуля, який визначений цим файлом;

  • якщо не визначено ні ім’я проекту, ні ім’я первинного файлу, то програма складається з модуля, що знаходиться в редакційному вікні.

В будь-якому випадку система обмежується проведенням тільки необхідних компіляцій. В частому випадку не компілюється повторно основний модуль, якщо існує відповідний йому відкомпільований модуль з розширенням *.obj. Завдяки цьому кількість необхідних компіляцій зводиться до мінімуму.

Режим Build. Виклик компілятора в режимі Build (Alt+C+B) відрізняється від виклику в режимі Make тим, що проводяться всі компіляції навіть при існуванні відповідних скомпільованих основних файлів.

Завдання

Необхідно відкомпілювати дві програми, що наведені нижче. В випадку складності компілювання треба ще раз переглянути теоретичні відомості.

Приклад 1

#include <conio.h>

main()

{

char name[20];

clrscr();

cprintf(“Привіт, як ваше ім’я? \n”);

cscanf(“%s”,name);

cprintf(“\nАх! Хороше ім’я, %s ! \n”, name);

return 0;

}

Приклад 2

#include <conio.h>

#include <stdio.h>

#include <string.h>

#define ANSWER “Грант”

main()

{

char try[40];

clrscr();

puts(“Хто знаходиться в могилі Гранта?”);

gets(try);

while(strcmp(try,ANSWER)!=0)

{

puts(“Ні, невірно, спробуй ще раз ! \n”);

gets(try);

}

puts(“Вірно!”);

return 0;

}

Контрольні питання

  1. Які режими компілювання вам відомі?

  2. Чим закінчується компіляція в визначених вами режимах?

  3. Як із *.obj створити *.exe файл не використовуючи інші режими компілювання?

  4. Що таке проект? Які файли він має? Які файли створюються після компілювання проекту?

  5. Які труднощі виникли при виконанні визначеного завдання?

Лабораторна робота № 2

Тема: “Типи даних. Введення та виведення даних”

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

Теоретичні відомості

Тип даних

Кількість байт

Діапазон

char

int

short

long

float

double

long double

1

2

2

4

4

8

10

-128…127

-32768…32767

-32768…32767

-2147483648…2147483648

-3.4e38…3.4e38

-1.7e308…1.7e308

-3.4e4932…3.4e4932

Завдання

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

  • скільки раз зустрічається вказана буква в тексті;

  • середня вага картини;

  • найбільш поширена буква в тексті.

  1. Змінні мають тип int. Визначте значення кожної наступної змінної.

Пункт

Формула

Варіанти відповіді

1

2

3

4

5

x = (22 + 6) / 2 * 7

x = 3 + 10 * 6

x = (int) 5.2 + 4.8

y = 12 + 2 * (x = 9/2)

x = (5 + 6) / 2

a) 91 б) 2 г) інакше

a) 78 б) 63 г) інакше

a) 9.8 б) 10 г) інакше

a) 20 б) 21 г) інакше

a) 10.5 б) 1 г) інакше

  1. Виправте помилки. Що буде надруковано?

main()

{

int i=1,n;

while(i<10)

{

n=1/i;

i++;

printf(%d,n);

}

printf(Кінець !\n)

  1. Що буде надруковано?

printf(“Картина продана за $%2.2f.\n ”,2.345e2);

  1. Що буде надруковано?

printf(“%c%c%c\n ”,’H’,105,’\41’);

  1. Що буде надруковано?

#define Q “C++ – об’єктно-орієнтована мова”

void main()

{

printf(“%s\n Рядок має %d символів.\n”, Q, strlen(Q));

}

  1. Виправте помилки. Що буде надруковано?

#define B Я вважав

#define X=1

main()

{

int xp, age;

char name[100];

printf(Визначте, будь ласка, своє ім’я. \n);

scanf(“%s”,&name);

printf(Дуже добре, %s, Скільки вам років ?\n, &name);

scanf(“%d”,&age);

xp = age + X;

printf(“%s Вам %d.\n”,B,xp);

}

  1. Ваша думка на використання виразів:

putchar(getchar());

getchar(putchar());

Контрольні питання:

  1. Яким буде результат під час ділення цілих чисел?

  2. Яким буде результат під час ділення дробових чисел?

  3. Яким буде результат під час ділення змішаних чисел?

  4. З якими аргументами працює функція scanf()?

  5. Яка з функцій getchar() чи putchar() має аргументи ?

Лабораторна робота № 3

Тема: “Програми з розгалуженням”

Мета: набути навичок в програмуванні з використанням умов.

Теоретичні відомості

Програми з розгалуженням використовують умовні оператори:

    • простий умовний оператор:

if (умова) оператор1;

    • умовний оператор з альтернативою:

if (умова) оператор1; else оператор2;

Приклад

Написати алгоритм і програму для обчислення величини y:

Блок-схема Програма

#include<stdio.h>

#include<conio.h>

void main()

{

int x,y;

clrscr();

// Введення x

scanf(“%d”,&x);

if (x<10)

y=x*x+128;

else

y=2*x-13;

// Виведення y

printf(“y дорівнює %d”,y);

}

Завдання

У відповідності з вказаним варіантом написати алгоритм і програму для обчислення величини z в залежності від введених користувачем заданих значень x та y.

№ варіанту

Функція

Значення x та y

x1 = 20

y1 = 5

x2 = 5

y2 = 65

x1 = 14

y1 = 4

x2 = 15

y2 = 100

x1 = 6

y1 = 10

x2 = 2

y2 = 10

x1 = 10

y1 = 25

x2 = 60

y2 = 25

x1 = 79

y1 = 10

x2 = 10

y2 = 20

x1 = 10

y1 = 15

x2 = 20

y2 = 15

x1 = 100

y1 = 15

x2 = 20

y2 = 15

x1 = 20

y1 = 5

x2 = 5

y2 = 65

x1 = 14

y1 = 140

x2 = 15

y2 = 100

x1 = 6

y1 = 10

x2 = 2

y2 = 10

x1 = 10

y1 = 25

x2 = 60

y2 = 25

x1 = 79

y1 = 10

x2 = 10

y2 = 20

x1 = 10

y1 = 15

x2 = 20

y2 = 15

x1 = 100

y1 = 15

x2 = 20

y2 = 55

x1 = 20

y1 = 10

x2 = 5

y2 = 65

x1 = 14

y1 = 4

x2 = 15

y2 = 100

x1 = 6

y1 = 10

x2 = 2

y2 = 10

x1 = 10

y1 = 25

x2 = 60

y2 = 30

x1 = 80

y1 = 10

x2 = 10

y2 = 20

x1 = 10

y1 = 15

x2 = 20

y2 = 15

x1 = 100

y1 = 15

x2 = 20

y2 = 15

x1 = 20

y1 = 5

x2 = 5

y2 = 65

x1 = 14

y1 = 120

x2 = 15

y2 = 50

x1 = 6

y1 = 10

x2 = 2

y2 = 12

x1 = 10

y1 = 25

x2 = 60

y2 = 25

x1 = 79

y1 = 10

x2 = 10

y2 = 20

x1 = 10

y1 = 15

x2 = 20

y2 = 15

x1 = 100

y1 = 15

x2 = 20

y2 = 15

x1 = 100

y1 = 15

x2 = 20

y2 = 25

x1 = 100

y1 = 20

x2 = 25

y2 = 15

Контрольні питання:

  1. З яких важливих функціональних блоків складається проста програма?

  2. Скільки байт займають змінні x, y, z?

  3. Для чого використовують бібліотечні файли <stdio.h> та <conio.h>?

  4. Що необхідно зробити, щоб можна було задати значення змінних x та y рівними 33000?

Лабораторна робота № 4

Тема: “Циклічні програми”

Мета: набути навичок в програмуванні з використанням циклів.

Теоретичні відомості

Для виконання повторюваних обчислень використовують оператори циклів:

  • цикл з лічильником:

for (ініціалізація; умова; прирощування) оператор;

  • цикл з передумовою:

while (умова) оператор;

  • цикл із післяумовою:

do оператор; while (умова);

Завдання

1) Ознайомитися з наведеним прикладом. Визначити, які види операторів циклу використовуються в програмі.

2) У відповідності з вказаним варіантом написати алгоритм і програму з використанням циклів.

Приклад

Необхідно визначити чи є число простим.

Програма

Frame2