Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Контрольні питання. Створення нових типів

Створення нових типів.

Typedef – оператор перейменування типів

За допомогою цього стандартного оператора мови С вже наявним типам даних можна надати нові імена, і їх можна використовувати поряд зі стандартними:

Typedef int integer;

Integer A;

Typedef float real;

Real B;

Typedef char [255] string;

String C;

(Таким чином описуємо структуру)

Typedef struct {

Int x; int y; } Ex;

Ex example;

Пере визначення типів даних робить програму більш прийнятною для читання.

Задача:

Знайти значення змінної В в залежності від того яке значення приймає змінна А. Всі наявні типи перевизначити.

В = {A2-4C2, A>0

C2+4A2, A≤0 Якщо A є [-10…12]

Include <stdio.h>

Void main ()

{ typedef int integer;

Integer A, B, C; integer i;

Puts (“vv. C”); scanf (“%i”, &C);

For (i=-10; i<12; i++) {

If (A>0) { B=A*A – 4*C*C

Printf (“B=%B, B”); }

Else { (A<=0) B=C*C+4*A*A;

Printf (“B=%i”, B); }}

1. Нехай є структура з трьома полями дробового типу, оголосити 4 екземпляри цієї структури і попарно передати їх до ф-ції яка визначає в якому з них добуток полів менший.

#include <stdio.h>

#void Func (Struct str, struct str);

Void main ()

{

Struct str {float P1, P2, P3;};

Struct str e1, e2, e3,e4;

Printf (“vv. znach log exemp.”);

Scanf (“%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d”, &e1.p1, &e1.p2, &e1.p3, &e1.p4, &e2.p1, &e2.p2, &e2.p3, &e2.p4, &e3.p1, &e3.p2, &e3.p3, &e3.p4, &e4.p1, &e4.p2, &e4.p3, &e4.p4,);

Func (e1, e2);

Func (e3, e4);

}

Void Func (struct str S1, struct str S2)

{

Flout f1, f2;

f1=S1.P1*S1.P2*S1.P3;

f2=S2.P1*S2.P2*S2.P3;

if (f1<f2)

puts (“В першому добуток полів менший”);

else

puts (“В другому добуток полів менший”);

}

2. Нехай є структура з 3 полями цілого типу, оголосити 3 екземпляри цієї структури, скласти поля всіх екземплярів і з отриманого числа дістати корінь.

#include <stdio.h>

#include <math.h>

Int

Funct (struct str);

Void main ()

{

Struct str {int P1, P2, P3;};

Struct str a1, a2, a3;

Int s1, s2, s3;

Float k1, k2, k3;

Printf (“ВВ значення полей екземпляру”);

Scanf (“%d, %d, %d, %d, %d, %d, %d, %d, %d”, &a1.p1, &a1.p2, &a1.p3, &a2.p1, &a2.p2, &a2.p3, &a3.p1, &a3.p2, &a3.p3);

s1 = func(a1);

k1 = sqrt (s1);

printf (“результат:, %f”, k1);

s2 = func(a2);

k2 = sqrt (s2);

printf (“результат:, %f”, k2);

s3 = func(a3);

k3 = sqrt (s3);

printf (“результат:, %f”, k3);}

int func (struct str Bobick);

{

Int Sharick;

Sharick=Bobick.P1+bobick.P2+bobick.P3;

Return (Sharick);}

3. Нехай є структура з 4 полями цілого типу, оголосити 2 екземпляри структури і визначити в якому з них сума полів найбільша.

#include <stdio.h>

#void Func (Struct strr);

Void main ()

{

Int S1, S2;

Struct str {int a1, a2, a3, a4;};

Struct str P1, P2;

Puts (“вв елементи структури”);

Scanf (“%i, %i, %i, %i, %i, %i, %i, %i, ”, &a1.P1, &a2.P1, &a3.P1, &a4.p1, &a1.P2, &a2.P2, &a3.P2, &a4.p2);

s1=func(P1);

s2=func(P2);

if (s1>s2) puts (“Сума 1 елементу більша”);

else puts (“Сума 2 елементу більша”);

}

Int func (struct str k)

{

Int t;

t=k.a1+k.a2+k.a3+k.a4;

return (t);

}

 

 

1. Дайте визначення структури.

2. Дайте визначеня масиву.

3. Дайте визначення вказівника.

4. Опишіть порядок створення структури.

5. Опишіть порядок створення масиву.

6. Опишіть порядок стврення масиву структур.

7. Опишіть порядок створення вказівника.

8. Опишіть порядок створення вказівника на структуру.

9. Який оператор дає змогу перевизначати типи даних?

10. В чому полягає сенс його використання?

<== предыдущая лекция | следующая лекция ==>
Вказівники на структури | Перечень рекомендуемых источников
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 264; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.