Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб7.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.22 Mб
Скачать

Завдання для самостійної роботи

  1. Вивчити теми:

  • оголошення функцій;

  • опис функцій користувача;

  • виклик функції користувача;

  • глобальні та локальні змінні;

2. Виконати завдання. Скласти функцію, яка виконує задані дії.Індивідуальне завдання вибрати відповідно до варіанту завдання, яке визначає викладач (див. нижче), з урахуванням наступних вимог :

  • Створена функція повинна бути універсальною;

  • Усі вхідні дані повинні вводитися у діалозі.

  • Машинограма (роздрук) результатів повинна містити вхідні дані і результати виконання програми, виводитися на екран дисплею чи прінтер.

Приклад виконання роботи

Обчислити корені квадратних рівнянь x2-ax+b=0 та cy2-dy-f=0. Всі корені дійсні

Програма має вигляд:

# include<iostream.h>

# include<math.h>

kvr (float,float,float);

void main ()

{

float a,b,c;

float d,f,g;

cout <<"введіть a,d,c"<<"\n";

cin>>a>>b>>c;

kvr(a,b,c);

cout <<"введіть d,f,g"<<"\n";

cin>>d>>f>>g;

kvr(d,f,g);

cout <<"кінець";

}

// функція обчислення коренів квадратного рівняння

kvr(float x, float y, float z)

{

float dd,x1,x2;

dd=y*y-4*x*z;

if (dd<0)

{

x1=(-y)/(2*x);

cout<<"один дійсний корінь x1="<<x1<<"\n";

}

else

if (dd>0)

{

x1=(-y+sqrt(dd))/(2*x);

x2=(-y-sqrt(dd))/(2*x);

cout<<"x1="<<x1<<"\n"<< "x2="<<x2<<"\n";

}

else cout<<"дійсних коренів не існує";

return 0;

}

Варіанти завдань

Варіант

Умова задачі

Примітка

1

Обчислити периметри трикутників, вершини яких задані точками A(2;1), B(3;6), C(1;8), L(-2;-3), D(-7;-1), K(3;4).

Довжини сторін обчислювати в підпрограмі.

2

Обчислити z=(v1+v2+v3)/2, де v1, v2, v3- об’єми сфер з радіусами r1, r2, r3 відповідно.

v обчислюються в підпрограмі.

3

Обчислити c=1! +2!+3!+...k!

n! обчислювати в підпрограмі.

4

Обчислити площу чотирикутника ABCD, якщо A(1;4), B(5.-3), C(3;6), D(-7;-6).

Використати формулу Герона для знаходження площ трикутників.

5

Обчислити значення виразу (f(a)+f(b))/2, якщо

Значення функції обчислити в підпрограмі.

6

Обчислити , де Si - відповідно середні арифметичні трійок чисел (2,2; 3,5; 4,1); (5; 6; -2,5); (5; -4; 2.3).

Середнє арифметичне обчислити в підпрограмі.

7

Обчислити , де Si - відповідно середні геометричні трійок чисел (2,2; 3,5; 4,1); (5; 6; -2,5); (5; -4; 2.3).

Середнє геометричне обчислити в підпрограмі.

8

Визначити менше з п’яти чисел a,b,c,d,e.

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

9

Обчислити значення виразу (f(a)-f(b))/3, якщо

Значення функції обчислити в підпрограмі.

10

Визначити більше з чотирьох чисел a,b,c,d.

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

11

Обчислити суму та добуток коренів квадратних рівнянь x2-ax+b=0 та cy2-dy-f=0.

Всі корені дійсні

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

1. Як оголосити функцію?

2. Що таке прототип функції?

3. Для чого використовується оператор return у тілі функції ?

4. Неведіть синтаксис команди виклику функції.

5. Як повинні бути узгодженні формальні та фактичні параметри ?

6. Що таке параметри за замовчуванням ? Як їх використовувати ?

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

Тема: Облік суми і добутку. Знаходження min і max

Мета роботи:- отримання практичних навичок складання і відлагодження програм обліку суми і добутку, пошуку min і max для розв'язання інженерних і наукових задач.

Завдання для самостійної роботи

Скласти і відлагодити одну загальну чи дві окремих програми обліку суми і добутку та пошуку min і max серед обчислених значень функції Z(X=var, Yi{Y}n).

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

1. Вираз функції Z повинен мати у складі: модуль, корінь непарної степіні зі знакозмінного виразу, тригонометричні функції у непарній степіні, знакозмінний знаменник, показникові функції, логарифм по вільній основі.

2. У функції Z(X, Yi) параметр Yi послідовно приймає значення елементів масиву {Y}n з кількістю даних n у межах [10...20]; масив слід заповнити випадковими числами з наданого інтервалу [K1;K2].

3. Участь значень функції Z(X, Yi) для обліку суми і добутку та пошуку min і max треба зумовити нескладним логічним виразом, який містить стандартні функції.

Приклад виконання завдання

Обчислити функцію Z:

 X = var; {Yi}n  [K1; K2];

Додаткова умова використанняі значень функції Z (X, Yi) в обчисленнях суми і добутку та пошуку min і max :

ln2 (Z +1) < 9.

//Програма обліку суми і добутку, пошуку min i max

#include <iostream.h>

#include <math.h>

#include <stdlib.h>

#include <conio.h>

void main ()

{ double Min=50000. , Max=-50000., Sum=0., Product=1.,

X, Q, Z, K1, K2;

int i, N, Flag=0;

clrscr ();

cout << endl << "Введіть X, N, K1, K2 : ";

cin >> X >> N >> K1 >> K2;

double Y[N+1];

randomize ();

for (i=1; i<=N; i++) {

Y[i] = random (1000*(K2-K1)+1)/1000. + K1;

cout << endl << "Y (" << i << ") = " << Y[i];

}

for (i = 1; i <= N; i++)

{

Q = (sin (X), 3) - Y[i];

if (Q<0) {

cout << endl << "\a Функція Z(" << X << ", " << Y[i] << ") не існує !";

continue;

} else {

Z = cos (X) * exp (2*Y[i]) / pow (Q, 1/3);

cout << endl << "Z(" << X << ", " << Y[i] << ") = " << Z;

}

if (log(fabs(Z)+1)*log(fabs(Z)+1) < 9) { Flag=1;

if (Z < Min) Min = Z;

Sum += Z;

if (Z > Max) Max = Z;

Product *= Z;

} else cout << "\a Умова є TRUE, тому Z не приймає участі у пошуку !";

}

if (Flag) {

cout << endl << "Min = " << Min << ", Max = " << Max;

cout << endl << "Sum = " << Sum << ", Product = " << Product;

} else cout << endl << "Min, Max, Sum, Product не отримано.";

}

Контрольнi запитання

1. Дайте пояснення щодо програм пошуку суми, добутку, мінімуму, максимуму.

2. За якими ітераційними формулами можна підрахувати суму і добуток?

3. Яким чином (за якою формулою) можна отримати випадкове число з наданого інтервалу?

4. Що розуміється під максимальним значенням дійсного числа на комп’ютері?

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

Тема: Масиви та функції

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

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

Масив — це набір об'єктів однакового типу, розташованих один за одним у пам'яті комп'ютера. Масив можна описати наступним чином:

тип_даних ім'я масиву [розмір_масиву]

Кожний масив має им'я. Значення індексу повинні знаходитись у диапазоні від нуля до величини, що на одиницю менше розміру масиву, вказаного під час його опису. Тип_даних задає тип елементів масиву. Розмір_масиву — константа чи константний вираз, що задає кількість елементів масиву. Ім'я масиву є вказівником-константою, що дорівнює адресі початку масива (першого байта першого елемента масива).

Доступ до окремих елементів масива може здійснюватись або за допомогою імені масива та індексу (порядковому номеру) або за вказівником (операція *). Іншими словами, наступні посилання будуть повністю еквівалентними:

array[i]

*(array+i)

Кожний раз, коли при виконанні програми у виразі зв'являється ідентифікатор типу масиву, він перетворюється у вказівник на перший елемент масиву.

Масив в якості параметра може бути переданий у функцію за допомогою вказівника (адреси) масиву. В якості формального параметра масиву даних довільного типу и можна використовувати:

    1. ім’я масиву з фіксованими границями, наприклад:

int a[10]; float b[m][n];

    1. ім’я масиву з порожньою першою границею, наприклад:

inta[ ]; float b[ ][n];

    1. вказівник на початок массиву, наприклад:

int *a; float *b; doble *c;

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

Int n_dod(const int *a, const int n);

Приклади оголошень функцій з параметрами масивами:

Void f1 (float b[m][n],int m,int n);

Void f2 (float a[10], int k);

Viod f3 (float a[],int k); //два останні оголошення еквівалентні

Void f4 (float *a,int k); // для одновимірного масиву

Оскільки при роботі з масивами формальним і фактичним параметром є вказівник – адрес початку масиву , то опрацювання його значень у функції здійснюється над даними, які розташовані в оперативній пам’яті, яка виділена масиву у головній функції (або у функції, яка викликає). При цьому масив завжди може бути результатом виконання функції

Завдання для самостійної роботи

1. Вивчити теми:

- оголошення масивів;

- передача масивів у функцію в якості її параметрів використовуючи вказівники

- звертання до елементів масиву з використанням індексованих змінних та вказівників;

- ініціалізація багатовимірних масивів;

2. Виконати завдання лабораторних робі №6 та №7, оформивши кожний пункт завдання у вигляді функції. Всі необхідні дані для функції повинні передаватися в якості параметрів. Використання глобальних змінних у функціях не допускається.

- результати роботи оформити протоколом.

Приклад виконання завдання

Кондитерська фабрика для виготовлення п'яти сортів цукерок використовує п'ять видів сировини. Нехай норми затрат аi,j; кожного виду сировини і на виробництво 1 т цукерок сорту j задані формулою аij = |sin i| + j (і, j = 1, 2, ..., 5). Вивести на екран таблицю затрат сировини (тобто масив а). Визначити, для якого сорту цукерок min) потрібно найменше сировини (min) третього виду.

// Лабораторна робота 9

#include <iostream.h>

#include <conio.h>

#include <math.h>

#define N 5

#define HB 5

void Min_2(float V[N][N]);

void Min_1(float *a, const int n1);

void main ()

{

clrscr();

float Vytraty [N][N]; // оголошення двовимірного масиву

float a[HB]; // оголошення одновимірного масиву

// введення елементів одновимірного масиву

for(int i=0;i<HB;i++) { cout<<"vvedit "<<i+1<<" element masivu ";

cin>>*(a+i);

};

Min_1(a,HB); // виклик процедури M in_1

// Формування значень двовимірного масиву

cout<<"t\t\ Vid cirovinu\n";

cout<<" \t 1 \t 2\t 3 \t4\t5\n";

// Утворимо таблицю затрат

for (int i = 0; i < N; i++)

{

float ii=i;

cout<<i+1<< " sort ";

for (int j=0; j < N;j++)

{

*(*(Vytraty + i) + j) = 2 * fabs(sin(ii + 1)) + j + 1;

// Вивід елементів і-го рядка

cout << *(*(Vytraty + i) + j) <<"\t";

}

cout<<"\n"; // Перехід на новий рядок

}

Min_2(Vytraty); // Виклик процедури Міп_2

getch();

}

// функція опрацювання двовимырного масиву

void Min_2(float V[N][N])

{

/* Припустимо, що найменше сировини третього

виду потрібно для цукерок першого сорту */

int imin = 0;

float _min= *(*(V)+2);

for (int i = 1; i < N; i++)

{

// Переглядаємо елементи 3-го рядка

if (*(*(V+ i) + 2) < _min)

{

_min = *(*(V+ i) + 2);

imin = i;

}

}

cout << "\n min surovinu 3-go vidu\n";

cout<< "potribno dly cukerok " << imin+1 << " sortu";

}

// функція опрацювання одновимірного масиву

void Min_1(float *a, const int n1)

{

float min, nmin=0;

// пошук мінімального елементу

min=*(a);

for(int i=1;i<n1;i++) if (*(a+i)<min)

{ min=*(a+i);

nmin=i;}

cout<<"Min="<<min<<"\nomer min elementa="<<nmin+1<<"\n";

}

Результати роботи програми

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

1. Що таке масиви?

2. Вказівники: об'ява, унарні оператори & та *.

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

4. Вказівники та аргументи функцій.

5. Вкажіть основні правила організації внутрішніх циклів.

6. Як описується двовимірний масив в програмі?

7. Які умови виходу з внутрішнього циклу?

8. Як реалізувати в програмі перегляд по рядках (стовпчиках) ?

9. Що таке функція користувача?

10. Що таке формальні, фактичні, глобальні та локальні параметри?

11. Як звернутися до функції?

12. Пояснити як здійснюється перехід від формальних до фактичних параметрів?

Лабораторна робота 12

Тема: Сортування даних

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

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

Дано множину {Аi} (i=[1;n]), елементи якої індексовано довільним чином. Небхідно індексувати {Аi} так, щоб із i < j слідувало Xi < Xj (i, j=[1;n]) (упорядкованість по зростанню) чи Xi > Xj (впорядкованість за спаданням). Процес сортування полягає у послідовних перестановках елементів множини {Аi} доти, доки їх індексація не узгодиться з їх упорядкованістю.

Сортування наданих методом обміну(метод „бульбашки”)

Основна ідея методу полягає у тому, що на кожній i-ій ітерації циклу порівнюють два сусідніх елементи Аi i Аi+1 (i=[1;n-1]). Якщо пара розташована не попорядку то елементи Ai i Ai+1 міняють місцями і реєструють факт такої перестановки. Перегляд повторюється дот тих пір, коли під час перегляду масиву від початку до кінця не буде більше перестановок.Таким чином найменший (найбільший) елемент опиниться на своєму місці у множині{Аi}.

Метод має невелику швидкодію (середня кількість порівнянь дорівнює (n*n-n)/2), є малоефективним для множин великого розміру, але має найбільш прозорий алгоритм.

Сортування наданих методом вибору

Основна ідея методу полягає у тому, що на кожній i-ій (i=[1;n-1]) ітерації зовнішнього циклу серед елементів множини {Aj} (j=[i+1;n]) шукають індекс k елементу Ak, який є найменшим (сортування по зростанню) чи найбільшим (сортування за спаданням) у порівнянні з елементом Ai і переносять цей елемент в кінець послідовності (дані Аk и Аi міняють місцями). Надалі, характерною особливістю методу є наявність двох незалежних частин послідовності – невпорядкованої (елементи, що залишилися) і впорядкованої. Метод має більшу швидкодію від попереднього, оскільки на кожній (i+1) -ій ітерації розглядається множина {X}, менша ніж на i-ій ітерації, за рахунок збільшення мінімального індексу множини на 1. Загальна кількість порівнянь наданих дорівнює n*n/2.

Сортування наданих методом включення

Основна ідея алгоритму: є впорядкована частина у яку черговий елемент поміщається (включається) так, що впорядкованість зберігається. Метод полягає у тому, що на кожній i-ій ітерації зовнішнього циклу (i=[2;n]) елемент Аi порівнюється з елементами Аj (j=[1;i-1]), і якщоАi < Аj (сортування по зростанню) чи Аi > Аj (сортування за спаданням), то елементи від Аj до Аi-1 зсувають праворуч на одну позицію, а еле-мент Аi розташовують на місці елементу Аj (таким чином елемент Xi ніби "розсовує" множину {А} з позиції j праворуч).

Кількість операцій у найгіршому випадку складає n*n/4 порівнянь і вставок. Метод можна рекомендувати для сортування малих множин.

Завдання для самостійної роботи

1. Познайомитися з задачею сортування даних

2. Вивчити основні методи сортування масивів: метод обміну, метод вибору, метод включення

3.Скласти і відлагодити окремі програми сортування даних масиву {Аi}n методами: обміну, вибору і включення.

Індивідуальне завдання синтезувати самостійно з урахуванням наступ-них вимог :

  • Масив {Аi}n містить випадкові числа з інтервалу [K1;K2] кількістю у межах [10...20].

  • Масив {Ai}n можна сортувати за зростанням чи за спаданням.

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

Приклад виконання завдання

Елементи цілочисельного масиву {Аi}n (i=[1;n]), які є випадковими числами з інтервалу [K1;K2], відсортувати за зростанням методами обміну, вибору і включення.

// Програма сортування масиву методом обміну(метод „бульбашки)”

#include <iostream.h>

#include <conio.h>

void Sort (int A[], int n)

{ int i, found;

do {

found = 0;

for ( i = 0; i <= n-1; i++)

if (A[i] > A[i+1]){

int cc= A[i]; A[i] = A[i+1]; A[i+1] = cc

found++;

}

} while (found !=0);

}

void main (void)

{ int i, Size, K1, K2;

clrscr ();

cout << endl << "Введіть розмір масиву і межі K1 та K2 змінени даних : ";

cin >> Size >> K1 >> K2;

int Array[Size] ;

randomize ();

for (i = 1; i <= Size; i++) Array [i] = random (K2-K1+1) + K1;

cout << endl << "Несортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

Sort (Array, Size);

cout << endl << "Сортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

}

Програма сортування масиву методом вибору

#include <iostream.h>

#include <conio.h>

void Sort (int in[]? Int n)

{

for (int i=0; i < n-1; i++) {

for(int j=i+1,k=s; j < n; j++)

if (in[j]<in[k]) k=j;

int c=in[k]; in[k]=in[i];in[i]=c;

}

}

void main (void)

{ int i, Size, K1, K2;

clrscr ();

cout << endl << "Введіть розмір масиву і межі K1 та K2 змінени даних : ";

cin >> Size >> K1 >> K2;

int Array[Size] ;

randomize ();

for (i = 1; i <= Size; i++) Array [i] = random (K2-K1+1) + K1;

cout << endl << "Несортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

Sort (Array, Size);

cout << endl << "Сортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

Програма сортування масиву методом включення

#include <iostream.h>

#include <conio.h>

void Sort (int in[]? Int n)

{ for (int i=1; i <= n; i++) {

int v=in[i];

for (int k=0; k<1j <=1; kj++)

if (in[k] < v) break;

for(int j=i-1;j>=k;j--)

int[j+1]=in[j];

in[k]=v;

}}

void main (void)

{ int i, Size, K1, K2;

clrscr ();

cout << endl << "Введіть розмір масиву і межі K1 та K2 зміни даних : ";

cin >> Size >> K1 >> K2;

int Array[Size] ;

randomize ();

for (i = 1; i <= Size; i++) Array [i] = random (K2-K1+1) + K1;

cout << endl << "Несортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

Sort (Array, Size);

cout << endl << "Сортований масив :" << endl;

for (i = 1; i <= Size; i++) cout << Array[i];

}

Контрольнi запитання

1. Сформулюйте загальну задачу сортування даних.

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

3. Викладіть суть сортування даних методами : обміну, вибору і включення.

4. Дайте порівняльну характеристику методів сортування.

5. Дайте вичерпні пояснення до розроблених програм.

Лабораторна робота 13

Тема: Структури. Масиви структур

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

Завдання самостійної підготовки:

  • Типи даних мови C.

  • Оголошення масивів. Використання масивів.

  • Структури. Оголошення та використання.

Завдання для виконання :

Скласти програму, в якій будуть вводитися 7 - 10 рядків таблиці, зразок якої наведено у Вашому варіанті індивідуального завдання до лабораторної роботи і виводиться на екран таблиця - відразу ж після введення і після сортування її за значеннями в першому стовпці. Примітки до таблиці , можна не виводити.

Виконання роботи:

Визначення змінних програми.

Елементом масиву є опис об'єкта. Оскільки опис складається з декількох складових частин різного типу, для нього використовуємо структуру мови C++. Опис цієї структури буде мати вигляд:

struct mon {

char name [15]; / * назва * /

char sc; / * школа * /

int cnt; / * кількість ченців * /

float sq; / * площа * /

};

Тут ми резервуємо для назви більше символів, передбачаючи можливість появи більш довгих назв, а також даємо тип int полю cnt, допускаючи, що його значення може бути більше, ніж 255.

Нам потрібно буде мати масив елементів зазначеного типу, отже, оголошуємо:

struct mon mm [10];

Для виконання перестановки елементів масиву потрібна буде ще робоча область пам'яті того ж типу, що й елементи масиву, тому що вводиться ще: struct mon x;

Також потрібні будуть змінні цілого типу для: кількості введених елементів n, індексів зовнішнього (i) і внутрішнього (j) циклів та індексу мінімального елемента - m. Тому оголошуємо:

 int i, j, n, m;

Програма алгоритму:

/ * Структури і масиви структур * / / * Приклад виконання. * / /************************************************* *******/ # Include <stdio.h> # Include <string.h> / * Опис структури, яка представляє монастир * / struct mon

{ char name [15]; / * назва * / char sc; / * школа * / int cnt; / * кількість ченців * / float sq; / * площа * / }

Mm [10]; / * визначення масиву монастирів * / void main ()

{ struct mmm x; / * робоча мінлива * / int n / * кількість елементів у масиві * / int i, j / * поточні індекси в масиві * / int m / * індекс мінімального елемента * / float sqx; / * робоча мінлива * / / * Введення даних * / for (n = 0; n <10; n + +) { printf ("% d. Введіть назву, школу, кількість, площа>", n +1); scanf ("% s", mm [n]. name); if (! strcmp (mm [n]. name ,"***")) break; scanf ("% s", & mm [n]. sc); scanf ("% d", & mm [n]. cnt); / * Увага! Ми обходимо помилку в системі програмування * / scanf ("% f", & sqx); mm [n]. sq = sqx; } / * Виведення таблиці * / printf ("--------------------------------------------- \ n "); printf ("| Буддійське монастирі Японії перiод Нара | \ n"); printf ("|--------------------------------------------| \ n "); printf ("| Назва | Школа | Кількість | Площа | \ n"); printf ("| | | ченців | земель (га) | \ n"); printf ("|-----------|-------|----------|-------------| \ n "); / * Виведення рядків фактичних даних * / for (i = 0; i <n; i + +) printf ("|% 9s |% c |% 3d |%-5.1f | \ n", mm [i]. name, mm [i]. sc, mm [i]. cnt, mm [i]. sq); printf ("--------------------------------------------- \ n "); / * Сортування масиву * / for (i = 0; i <n-1; i + +) { m = i; / * мінімальний елемент - перший * / for (j = i +1; j <n; j + +) * Якщо поточний елемент> мінімального, він стає мінімальним * / if (strcmp (mm [m]. name, mm [j]. name)> 0) m = j; if (m> i) { / * Перестановка першого і мінімального елементів * / strcpy (x.name, mm [i]. name); x.sc = mm [i]. sc; x.cnt = mm [i]. cnt; x.sq = mm [i]. sq; strcpy (mm [i]. name, mm [m]. name); mm [i]. sc = mm [m]. sc; mm [i]. cnt = mm [m]. cnt; mm [i]. sq = mm [m]. sq; strcpy (mm [m]. name, x.name); mm [m]. sc = x.sc; mm [m]. cnt = x.cnt; mm [m]. sq = x.sq; } } / * Виведення таблиці * / printf ("--------------------------------------------- \ n "); printf ("| Буддійське монастирі Японії перiод Нара | \ n"); printf ("|--------------------------------------------| \ n "); printf ("| Назва | Школа | Кількість | Площа | \ n"); printf ("| | | ченців | земель (га) | \ n"); printf ("|-----------|-------|----------|-------------| \ n "); for (i = 0; i <n; i + +) printf ("|% 9s |% c |% 3d |%-5.1f | \ n", mm [i]. name, mm [i]. sc, mm [i]. cnt, mm [i]. sq); printf ("--------------------------------------------- \ n "); }

Варіанти завдань:

Варіант №1

Деякі види антилоп

Назва

Група

Середовище існування

Чисельність популяції

Джейран

A

Азія

30000

Гну

B

Африка

560000

Бейза

H

Африка

2500

Групи: А – дійсні антилопи, B - коровячі антилопи, H - конячі антилопи

Варіант №2

Фірми - виробникм СКБД

Фірма

Кількість. продуктІв

Річний об’єм продажі ($)

Частина ринку (%)

Oracle

1

2488000000

31.1

IBM

3

2392000000

29.9

Microsoft

2

1048000000

13.1

Примітка: за данними Gartner Group за 1999р

Варіант №3

Відділ кадрів

Прізвище

Иніціали

Рік народж

Оклад

Іванов

І.І.

1975

517.50

Петренко

П.П.

1956

219.10

Паніковський

М.С.

1967

300.00

Варіант №4

Відомість деталей

Назва

Тип

Колькість

Вага 1 деталі(г)

Фланець

З

3

450

Перехідник

К

8

74

Станина

П

1

117050

Примітка: принято таке кодування типів: О - оригінальна, К - куплена, П - позичена

Варіант №5

Характеристики ПК

Процесор

Частота (Mgz)

RAM (Mb)

Тип

Pentium-III

233

 

C

AMD-К6

166

 

C

PowerPC-620

2000

 

R

Тип: C - CISC-процесор, R - RISC-процесор

Варіант №6

Каталог библіотеки

Автор книги

Назва

Рік випуску

Група

Сенкевич

Потоп

1978

Х

Ландау

Механіка

1989

Н

Дойль

Сумчаті

1990

Д

Примітка: Х - художня література; Н навчальна література; Д - довідкова література

Варіант №7

Відомість комплектуючих

Позначення

Тип

Номінал

Коллькість

RT-11-24

R

100000

12

RT-11-24

R

50000

10

CGU-12K

C

17.5

3

Примітка: R - резістор; C - конденсатор

Варіант №8

Проекти пошуку неземних сигналів

Рік

Науковий керівник

Діаметр антени (м)

Робоча частота (МГц)

1960

Дрейк

26

1420

1970

Троїцький

14

1875

1978

Хоровиць

300

1665

Примітка: спостерігалися об’єкты от 2 звезд до нескольких галактик

Варіант №9

Офісні пакети

Назва

Виробник

Колькість складоих частин

Ціна ($)

Office

Microsoft

4

870

SmartSute

Lotus

5

1020

StarOffice

Sun

4

9

Варіант №10

Сільськогосподарські культури

Назва

Тип

Посівна площа (га)

Урожайність (ц/га)

Соя

Б

13000

45

Горох

Б

8000

17

Рис

З

25650

24

Примітка: З - зернові, Б - бобові

Варіант №11

Відомість спортивних змагань

Прізвище участника

Код команди

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

Місце

Баландин

С

123.7

2

Шишков

Ш

79.98

3

Кравченко

Д

134.8

1

Примітка: Д - "Динамо", С - "Спартак", Ш - "Шахтар"

Варіант №12

Відомість суспільного транспорту

Вид транспорту

№ маршруту

Протяжність маршруту (км)

Час в дорозі(хв)

Тр

12

27.55

75

Т-с

17

13.6

57

А

12а

57.3

117

Примітка: Тр - трамвай, Тс - тролейбус, А - автобус

Варіант №13

Приблизна кількість зірок різних спектральних класів в Галактиці

Спектральний клас

Приблизна маса (відн.Сонця)

Частина %

Чисельність

O

32

0.00002

55000

F

1.25

2.9

12000000000

M

0.2

73.2

293000000000

Примітка: не показані дані для класів: B, A, G, K

Варіант №14

Час виконання деяких програм, які застосовують паралельні алгоритми

Назва програми

Кількість рядків коду

Час викон. на SGI Callenge (cек)

Час викон.. на SGI Indy (cек)

OCEAN

1917

8.70

18.2

DYFESM

3386

6.95

22

TRFD

417

1.05

2.98

Примітка: SGI Callenge - ЦП R1000 196 MHz, 1.024 MB RAM SGI Indy - ЦП MIPS R4600 134 MHz, 64 MB RAM

Варіант №15

Конфігурація програмних засобів інформаційних систем

Операційна система

СУБД

Мін.об’єм зовнішньої пам’яті (MB)

Мін.об’єм оперативної пам’яті (MB

Приблизна ціна ($)

OS/2

DB2

130

22

3343

Windows/NT

SQLServer

230

24

2685

SCO/Unix

Oracle

110

48

3745

Примітка: ціна ліцензії на 8 користувачів

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

1. Для чого використовуються структури?

2. Чи ставиться крапка з комою після оголошення структури?

3. Як називаються елементи структурі?

4. Як звернутися до поля структури?

5. Як здійснюється введення/виведення структур?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]