- •Національний технічний університет
- •Мета роботи
- •Оператори введення/виводу
- •Лабораторна робота № 2
- •Приклад виконання завдання
- •Вибір варіанта розрахунку. Використання операторів if, else, else if Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор if
- •Використання оператора else в операторі if
- •Оператор else if
- •Лабораторна робота №4
- •Циклічні алгоритми.
- •Організація циклу за допомогою операторів while і do while
- •Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Циклічний алгоритм. Організація циклу за допомогою оператора for Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання функцій getchar (), putchar () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання операторів continue, break і функції switch () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор continue
- •Оператор break
- •Множинний вибір: функція switch ()
- •Робота з рядками Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 9
- •Завдання
- •Вказівки до виконання завдання
- •Робота з одномірними масивами. Обчислення максимуму, мінімуму, кратність елементів
- •Сортування масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з двовимірними масивами. Організація введення / виводу елементів двовимірного масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 13 робота з функціями Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Придбання і закріплення практичних навичок у використанні файлового введення/виводу при складанні програми мовою с.
- •Лабораторна робота № 15
- •Робота з функціямипідпрограмами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 17 Програмування задач матричної алгебри Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 18 Обчислення визначеного інтегралу Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 19 Робота зі структурами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Додаток 1 Завдання до лабораторної роботи № 2
- •1. Обчислити значення виразу , якщо ,
- •Додаток 2 Завдання до лабораторної роботи № 3
- •Додаток 3 Завдання до лабораторної роботи № 4
- •Додаток 4 Завдання до лабораторної роботи № 5
- •Додаток 5 Завдання до лабораторної роботи № 6
- •Додаток 6 Завдання до лабораторної роботи № 7
- •Додаток 7 Завдання до лабораторної роботи № 8
- •Додаток 8 Завдання до лабораторної роботи № 9
- •Додаток 9 Завдання до лабораторної роботи № 10
- •Додаток 10 Завдання до лабораторної роботи № 11
- •Додаток 11 Завдання до лабораторної роботи № 12
- •Додаток 12 Завдання до лабораторної роботи № 13
- •Додаток 13
- •Додаток 14
- •Додаток 15
- •Додаток 16
- •Додаток 17
- •Додаток 18
- •Список літератури
Вказівки до виконання завдання
Структура – це сукупність логічно зв'язаних змінних, можливо, різних типів, згрупованих під одним іменем для зручності подальшої обробки.
Елементи структури позначаються ідентифікаторами, з якими можна зв'язувати описи типів. У результаті структуру можна розглядати як єдине ціле й здійснювати при необхідності вибір складових її елементів.
Для утворення структури привласнюються імена кожному з елементів і структурі в цілому. Потім за допомогою спеціального опису задають ієрархію, порядок проходження й типи елементів, що включають у структуру. Так, для розглянутого вище прикладу з анкетою службовця можна вибрати імена:
tab_nom – табельний номер;
fio – прізвище, ім'я, по батькові;
pol – стать;
summa – зарплата;
Всі ці поняття можна об'єднати в таку, наприклад, структуру:
struct anketa
{
int tab_nom;
char fio[30];
char data[10];
int pol;
char adres[40];
float summa;
};
Цей запис називається описом структури. Вона починається із ключового слова struct і складається з списку описів у фігурних дужках. За словом struct може випливати необов'язкове ім'я, що називається ім'ям типу (ярликом) структури. Змінні, що згадуються в записі, називаються елементами. Слідом за правою фігурною дужкою, що закінчує список елементів, може випливати список змінних, так само, як і у випадку базисних типів. От чому в наведеному вище описі структури після закриваючої фігурної дужки ставиться крапка з комою ; вона завершує порожній список. Опис struct {....} p1, p2, p3; синтаксично аналогічно int p1, p2, p3; у тому розумінні, що кожний з операторів описує p1, p2, p3 як змінні відповідні типи й приводить до виділення для них пам'яті. Опис же структури без наступного списку перемінних не виділяє ніякої пам'яті. Воно тільки визначає форму структури і діє як шаблон. Якщо такий опис постачений ярликом (ім'ям типу), то його можна пізніше використати при визначенні фактичних екземплярів структури
Зовнішні й статичні структури можна ініціювати, поміщаючи слідом за визначенням список початкових значень елементів:
struct anketa a0={ 1024, "Макагон У.М", "10.01.1943",0 , "Одеса, Варневская, 23/99", 175.00};
Кожної структурної змінної в нашому випадку можуть бути привласнені шість значень, що мають відповідні базові типи. Доступ до цих значень здійснюється за допомогою наступної конструкції:
ім'я_структури.ім'я_елемента
Операція виділення елемента . (крапка) зв'язує ім'я структури і ім'я елемента. Наприклад, ми можемо з урахуванням уведених позначень написати:
a0.data="10.01.43";
a1.summa=0.0;
if(a2.pol==1) man=man+1;
На практиці структурні змінні звичайно з'являються у вигляді масиву або списку. Неважко бачити, що наші три змінні a0, a1, a2 буде простіше використати, якщо їх об'єднати в масив, що складається з елементів типу struct anketa. Застосувавши у програмі опис
struct anketa a[3];
ми можемо вживати в ній, наприклад, такі оператори:
a[0].fio ="Макагон У.М";
for (i=0;i<3;i++)
if(a[i].tab_nom>a[i+1].tab_nom)
{
p=a[i].tab_nom;
a[i].tab_nom=a[i+1].tab_nom;
a[i+1].tab_nom=p;
}
Приклад: Описати структуру з ім'ям NOTE, що містить наступні поля:
Прізвище;
Номер телефону;
День народження (масив із трьох чисел)
Написати програму, що виконує вивід на екран інформаціі про людину, чиє прізвище введене з клавіатури. Якщо такої немає, видати на екран відповідне повідомлення.
#include <stdio.h>
#include <string.h>
#define MAX 41
#define MAXA 31
#define M 3
void main (void)
{
struct NOTE /*опис структури*/
{
char fam[MAX];
double tel;
int data[M];
};
struct NOTE ludi[M],l1; /*опис змінних типу структура*/
int i,j,d;
double t1;
FILE *ad;
ad=fopen("ludi.txt","r"); /*файловий ввід даних*/
for(i=0;i<M;i++)
{
fscanf(ad,"%s",ludi[i].fam);
printf("\n%s",ludi[i].fam); /*друк вхідних даних на екран*/
fscanf(ad,"%lf",&ludi[i].tel);
printf("\n%.0lf",ludi[i].tel);
for(j=0;j<M;j++)
{
fscanf(ad,"%d",&ludi[i].data[j]);
printf("\n%d",ludi[i].data[j]);
}
}
printf("\n Введіть дані про людину \n") ;
scanf("%s",l1.fam);
scanf("%lf",&l1.tel);
for(j=0;j<M;j++)
scanf("%d",&l1.data[j]);
d=0;
for(i=0;i<M;i++)
{
/*порівняння рядків, якщо умова дійсна, то функція strcmp() повертає 0*/
if(strcmp(ludi[i].fam,l1.fam)==0)
{
d++;
printf("\n %s",ludi[i].fam);
printf("\n%.0lf",ludi[i].tel);
for(j=0;j<M;j++)
printf("\n%d",ludi[i].data[j]);
}
}
if(d==0)
printf("Людини с таким прізвищем немає !!!") ;
}
Звіт про роботу повинен включати її стислий опис, алгоритм виконання індивідуального завдання у вигляді блок-схеми, текст програми і результати її виконання.
