- •Методичні вказівки до виконання лабораторних та контрольних робіт із дисципліни "Програмування"
- •Порядок виконання лабораторних та контрольних робіт
- •Зміст контрольної роботи:
- •Загальні відомості
- •Int n; puts("Введіть розмір масиву");
- •Int n,m; puts("Введіть розмір масиву");
- •Int n; puts("Введіть розмір масиву структур");
- •Лабораторні роботи Лабораторна робота № 1 Робота з масивами
- •Лабораторна робота № 2 Структури та об'єднання.
- •Лабораторна робота № 3 Елементарне введення у функції
- •Лабораторна робота № 4 Прийоми використання функцій
- •Лабораторна робота № 5 Робота з файлами
- •Контрольні роботи
- •Завдання 1
- •Масиви та покажчики, масиви динамічної пам’яті
- •Варіанти завдань до програми 1.1
- •Варіанти завдань до програми 1.2
- •Завдання 2 Структури, об'єднання Варіанти завдань до програми 2.1
- •Варіанти завдань до програми 2.2
- •Завдання 3 Елементарне введення у функції Варіанти завдань до програми 3.1
- •Варіанти завдань до програми 3.2
- •Завдання 4 Прийоми використання функцій Варіанти завдань до програми 4.1
- •Варіанти завдань до програми 4.2
- •Завдання 5 Робота з файлами Варіанти завдань до програми 5.1
- •Варіанти завдань до програми 5.2
- •Контрольні питання
- •Література
Лабораторна робота № 2 Структури та об'єднання.
Мета роботи– вивчити способи визначення та ініціалізації структур, покажчиків на структуру, масивів структур та об'єднань.
Програма 2.1. В програмі визначаються проста структура, масив структур та покажчик на структуру. Елементам всіх структур привласнюються певні значення.
#include <stdio.h>
#include <conio.h>
struct REC{char *name; // визначення структурного типу
int age;
float r;};
int main()
{clrscr();
REC rec1; // визначення структури rec1 типу REC
rec1.name="Петров I.С.";
rec1.age=19; rec1.r=4.5;
printf("%s %d %.2f\n",rec1.name,rec1.age,rec1.r);
//Визначення масиву з 3-х структур типу REC і ініціалізація першої з них
REC str[3]={"Федоров I.Г.",19,4.17};
str[1].name="Семенов В.I.";
str[1].age=20; str[1].r=4.33;
str[2].name="Орлов С.О.";
str[2].age=21; str[2].r=3.95;
for(int i=0;i<3;i++)
printf("%s %d %.2f\n",str[i].name,str[i].age, str[i].r);
REC *ptrrec; // визначення покажчика на структуру типу REC
ptrrec=new REC; // запит пам'яті для структури типу REC
if(ptrrec==NULL){puts("Помилка"); return -1;}
ptrrec->name="Iванов П.Ю.";
ptrrec->age=18; (*ptrrec).r=4.2;
printf("%s ",(*ptrrec).name);
printf("%d %.2f\n",ptrrec->age, ptrrec->r);
delete ptrrec; // звільнення пам’яті
puts("\nPress any key...");
getch();
return 0;
}
Вказівка до програми 2.1: Визначте структурний тип, членами якого є масив з 2-х чисел типу char і масив з 3-х чисел типу int. Визначте просту структуру, масив з 4-х структур та покажчик на структуру, під яку запросить пам’ять. Перші три структури з масиву структур проініціалізуйте, всім іншим членам цих структур привласніть які-небудь значення. Визначте розмір пам’яті, що займають кожна з структур. Виведіть всі структури на екран.
Програма 2.2. В програмі визначається структурний тип, елементом якого є раніш визначений структурний тип, тобто визначається вкладена структура. Далі визначається масив з сьома таких структур. Перші чотири структури з цього масиву ініціалізуються явно, а іншим елементам привласнюються певні значення.
#include <stdio.h>
#include <conio.h>
struct CHARACT{char rg; // розрядність
char *mem; // об’єм доступної пам’яті
};
struct INTEL {int year; // рiк створення
char *mean; // позначення
CHARACT ch; // вкладена структура
};
int main()
{clrscr();
INTEL in[7]={{1974,"8080",8,"64K"},{1978,"8086",16,"1M"},
{1983,"80186",16,"1M"},{1983,"80286",16,"16M"}};
in[4].year=1987; in[4].mean="i386";
in[5].year=1990; in[5].mean="i486";
in[6].year=1993; in[6].mean="Pentium";
in[4].ch.rg=32; in[4].ch.mem="4G";
in[5].ch.rg=32; in[5].ch.mem="4G";
in[6].ch.rg=64; in[6].ch.mem="4G";
puts("History Of 80x86");
for(int i=0;i<7;i++)
{printf("%d %7s ",in[i].year,in[i].mean);
printf("%5d %5s\n",in[i].ch.rg, in[i].ch.mem); }
puts("\nPress any key...");
getch();
return 0;}
Вказівка до програми 2.2: Визначить масив з 3-х структур з шаблоном, що містить дані про студента (прізвище, ім'я, по батькові) та вкладену структуру з адресою (місто, вулиця, дім, квартира), Привласніть членам структур довільні значення і виведіть їх на екран.
Програма 2.3. В програмі демонструється використання об'єднання union для дослідження внутрішнього зображення дійсних чисел. Число типу float виводиться у вигляді цілого числа типу long, а потім аналізуються його двійкові розряди.
#include <stdio.h>
#include <conio.h>
//визначення типу UN об'єднання
union UN{float F; unsigned long L;};
void main()
{clrscr();
UN FtoL; // визначення об'єднання FtoL типу UN
FtoL.F=15.375;
// 15.375 (10 СЧ)=01000001011101100000000000000000 (2 СЧ)
printf("F=%.3f L=%ld=%#lx \n",FtoL.F,FtoL.L,FtoL.L);
unsigned long m;
int i,n,counter;
n=8*sizeof(m);
for(i=n,m=1L<<n-1;i>0;i--)
{if(FtoL.L&m) printf("1"); else printf("0");
m>>=1;}
printf("\nзнак числа: ");
for(i=n,counter=0,m=1L<<n-1;i>0;i--)
{if(FtoL.L&m) printf("1"); else printf("0");
m>>=1;
if(counter==0)printf("\nзсунутий порядок числа: ");
if(counter==8)printf("\nмантiса числа: ");
counter++;
}
puts("\nPress any key...");
getch(); }
Вказівка до програми 2.3: Визначте об'єднання, членами якого є масив із трьох цілих чисел і масив із шести символів. Введіть з клавіатури елементи об'єднання як цілі числа, а виведіть їх на екран в вигляді символів та з кодом символів в 16-річній системі числення.