Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Struct data data1;

Читайте также:
  1. Cagnon T.A., Rein G. The biological significance of water structured with non-hertzian time reversed waves. J. US Psychotronic Assoc. 4, 26-31, 1990
  2. Cell structure - Cell Commander
  3. COMMUNICATIVE STRUCTURE OF THE ENGLISH AND RUSSIAN SENTENCE
  4. CONSTRUCTIONS WITH THE VERBS TO HAVE, TO GET
  5. Instructions
  6. Instructions – Указания
  7. Political Correctness: Deconstruction and Literature

Тепер можна ініціалізувати вказівник

p_data=&data1;

Цей оператор присвоює адресу структури data1 вказівнику p_data.

Вказівник на структуру, вказує на перший байт збережуваних даних. Якщо p_data вказівник на структуру data1, то *p_data – це сама структура. До окремих полів структури можна звертатися за допомогою (.) (*p_data).a1=100;

Вираз (* p_data) треба брати в дужки, бо операція звернення до елементів структури крапка (.) має вищий пріоритет, ніж операція посилання по вказівнику (*).

2 Постановка задачі

Написати програму, яка здійснює опрацювання масиву структур згідно заданого варіанту. Масив структур повинен містити не менше 5-ти елементів. Масив ввести з клавіатури. Програма повинна видавати підказку користувачу про те який елемент вводити.

3 Варіанти індивідуальних завдань

1. Написати програму, яка вводить масив записів про автомобілі (модель, рік випуску, ціна колір, потужність двигуна). Програма повинна знайти і вивести на екран дані про автомобілі червоного кольору, які випущені після 2002 року і коштують менше 20000 грн.

2. Написати програму, яка вводить масив записів про персональні комп’ютери (Тип процесора, об’єм ОЗП, тип і об’єм жорсткого диску, наявність окремої відеокарти). Програма повинна знайти і вивести на екран дані про комп’ютери, у яких об’єм ОЗП більший 256 МБ і є окрема відеокарта.

3. Написати програму, яка вводить масив записів про мобільні телефони (виробник, модель, об’єм пам’яті, наявність фотокамери, наявність МР3 – плеєра, ціна). Програма повинна знайти і вивести на екран дані про телефони без камери і з МР3 –плеєром.

4. Написати програму, яка вводить масив записів про цифрові фотоапарати (виробник, модель, наявність оптичного збільшення, кратність оптичного збільшення, тип інтерфейсу, об’єм пам’яті, ціна). Програма повинна знайти і вивести на екран дані про фотоапарати у яких об’єм пам’яті перевищує 64 МБ, які мають оптичне збільшення.

5. Написати програму, яка вводить масив записів про студентів (Прізвище, ім’я, рік народження, група, рейтинг, стать). Програма повинна знайти і вивести на екран прізвища та ініціали студентів у яких рейтинг менший 50 балів.

6. Написати програму, яка вводить масив записів про телевізори (модель, діагональ екрана, ціна, наявність супутникового тюнера, кількість систем декодування кольору). Програма повинна знайти і вивести на екран дані про телевізори з діагоналлю екрану менше 54 см і ціною менше 6000 грн.

7. Написати програму, яка вводить масив записів про музичні центри (модель, наявність підтримки МР3 формату, вихідна потужність, ціна, наявність дистанційного керування). Програма шукає і виводить на екран дані про музичні центри які підтримують МР3 і коштують менше 300 грн.

8. Написати програму, яка вводить масив записів про країни Європи (Назва, столиця, кількість населення, площа, кількість міст). Програма повинна знайти і вивести дані про країни у порядку зростання кількості населення.

9. Написати програму, яка вводить масив записів про ріки України (Назва, басейн, довжина, площа приток, в яке море впадає). Програма повинна знайти і вивести на екран дані про річки, довжина яких більша за 100 км.

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

11. Написати програму, яка вводить масив записів про працівників фірми (Прізвище, ім’я, стать, освіта, стаж роботи, посада). Програма повинна знайти і вивести дані про працівників з вищою освітою і стажем більше 30 років..

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

13. Написати програму, яка вводить масив записів про наявність носіїв даних в магазині (тип носія, виробник, ціна, ємність, кількість). Програма повинна знайти і вивести на екран дані про носії даних впорядкованих по зростанню ціни.

14. Написати програму, яка вводить масив записів про відеокамери (модель, тип (цифрова/аналогова), ціна, наявність цифрового збільшення, кратність цифрового збільшення, кратність оптичного збільшення). Програма повинна вивести на екран дані про відеокамери, які не мають цифрового збільшення впорядковані по зростанню за ціною.

 

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

Постановка задачі. Написати програму, яка вводить масив записів про країни Європи (назва, столиця, кількість населення, площа, кількість міст).

Програма повинна знайти і вивести на екран дані про країни у порядку зростання кількості населення.

Текст програми мовою С

#include <stdio.h>

#include <stdlib.h>

#include<string.h>

int main()

{int i, j;

struct dani

{char nazva[20];

char stol[20];

int nasel;

int plos;

int mist; } infor[3], a;

for(i=0;i<3;i++)

{puts("Vvedit nazvy krajinu");

scanf("%s",infor[i].nazva);

puts("Vvedit nazvy stoluci");

scanf("%s",infor[i].stol);

puts("Vvedit kilkist naselennya");

scanf("%d",&infor[i].nasel);

puts("Vvedit ploschy");

scanf("%d",&infor[i].plos);

puts("Vvedit kilkist mist");

scanf("%s",&infor[i].mist);}

for(j=0;j<3;j++)

for(i=j;i<3;i++)

{

if(infor[i].nasel>infor[i+1].nasel)

{a=infor[i];

infor[i]=infor[i+1];

infor[i+1]=a;}

}

puts("Vuvid sortonanogo spusky");

for(i=0;i<3;i++)

printf("%s\n %s\n %d\n %d\n %d\n ", infor[i].nazva, infor[i].stol, infor[i].nasel,

infor[i].plos, infor[i].mist);}

Тестовий приклад

Якщо ми введемо:

Poland Warchava 34 789 5600

France Paris 87 565 8400

Ukraine Kiyv 52 988 24000

То на екрані ми маємо отримати відсортований масив:

Poland Warchava 34 789 5600

Ukraine Kiyv 52 988 2400

France Paris 87 565 84000

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

1. Які способи ініціалізації структур даних Ви знаєте?

2. Яка різниця між структурою та об’єднанням?

3. Як описати масив структур?

4. Як можна отримати доступ до поля елемента структури?

5. Який тип структури називається бітовим полем?

6. Чому в бітових полях не можна використовувати елементи типу float чи double?

8. Чому структури називають типом даних користувача?


Дата добавления: 2015-07-17; просмотров: 121 | Нарушение авторских прав


Читайте в этой же книге: Лабораторна робота № 6-7 | Лабораторна робота № 8 | Постановка завдання | Лабораторна робота № 9 | Лабораторна робота № 10 | Лабораторна робота № 11-12 | Лабораторна робота № 13-14 | Лабораторна робота № 15 | Int putchar(int c); | Лабораторна робота № 16 |
<== предыдущая страница | следующая страница ==>
Лабораторна робота № 17-18| Лабораторна робота № 19

mybiblioteka.su - 2015-2024 год. (0.01 сек.)