Лабораторна робота № 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;
}
Контрольні питання
Які режими компілювання вам відомі?
Чим закінчується компіляція в визначених вами режимах?
Як із *.obj створити *.exe файл не використовуючи інші режими компілювання?
Що таке проект? Які файли він має? Які файли створюються після компілювання проекту?
Які труднощі виникли при виконанні визначеного завдання?
Лабораторна робота № 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 |
Завдання
Якими типами ви будете користуватись при обробці даних наступного вигляду:
скільки раз зустрічається вказана буква в тексті;
середня вага картини;
найбільш поширена буква в тексті.
Змінні мають тип 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 г) інакше |
Виправте помилки. Що буде надруковано?
main()
{
int i=1,n;
while(i<10)
{
n=1/i;
i++;
printf(%d,n);
}
printf(Кінець !\n)
Що буде надруковано?
printf(“Картина продана за $%2.2f.\n ”,2.345e2);
Що буде надруковано?
printf(“%c%c%c\n ”,’H’,105,’\41’);
Що буде надруковано?
#define Q “C++ – об’єктно-орієнтована мова”
void main()
{
printf(“%s\n Рядок має %d символів.\n”, Q, strlen(Q));
}
Виправте помилки. Що буде надруковано?
#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);
}
Ваша думка на використання виразів:
putchar(getchar());
getchar(putchar());
Контрольні питання:
Яким буде результат під час ділення цілих чисел?
Яким буде результат під час ділення дробових чисел?
Яким буде результат під час ділення змішаних чисел?
З якими аргументами працює функція scanf()?
Яка з функцій 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 |
Контрольні питання:
З яких важливих функціональних блоків складається проста програма?
Скільки байт займають змінні x, y, z?
Для чого використовують бібліотечні файли <stdio.h> та <conio.h>?
Що необхідно зробити, щоб можна було задати значення змінних x та y рівними 33000?
Лабораторна робота № 4
Тема: “Циклічні програми”
Мета: набути навичок в програмуванні з використанням циклів.
Теоретичні відомості
Для виконання повторюваних обчислень використовують оператори циклів:
цикл з лічильником:
for (ініціалізація; умова; прирощування) оператор;
цикл з передумовою:
while (умова) оператор;
цикл із післяумовою:
do оператор; while (умова);
Завдання
1) Ознайомитися з наведеним прикладом. Визначити, які види операторів циклу використовуються в програмі.
2) У відповідності з вказаним варіантом написати алгоритм і програму з використанням циклів.
Приклад
Необхідно визначити чи є число простим.
Програма
