17096

Розробка програм зі скалярними типами даних

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота № 8 Тема: Розробка програм зі скалярними типами даних Ціль роботи: Розглянути і вивчити скалярні типи даних С int char float і ін. і їхнє використання. Обладнання: ПКПО Borland C Теоретичні відомості У С перемінні повинні бути оголошені тобто їхній ...

Украинкский

2013-06-29

90 KB

1 чел.

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

Тема: Розробка програм зі скалярними типами даних

Ціль роботи: Розглянути і вивчити скалярні типи даних С++ (int, char, float і ін.) і їхнє використання.

Обладнання: ПК,ПО Borland C++

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

У С++ перемінні повинні бути оголошені, тобто їхній тип специфікований до того, як ці перемінні будуть використані. Оголошення перемінних можуть бути зроблені в будь-якім місці програми. При оголошенні перемінних застосовується префикснийзапис, при якій спочатку вказується тип, а потім - ім'я перемінної.

Оголошення перемінних можуть бути глобальними з класами пам'яті extern і static (поза функцією main(), за замовчуванням extern), і локальними з класами пам'яті auto, register (усередині блоку, функції, наприклад, усередині функції main(), за замовчуванням auto).

Глобальні перемінні  ініціюються нульовим значенням за замовчуванням.

За замовчуванням передбачається, що перемінні є знаковими. Беззнакові перемінні описуються явно за допомогою специфікатора insigned

Наприклад:

  int n1, n2, n3, n4;      // множинне оголошення перемінних

  n1=15; float  weight =23.56;  // оголошення перемінних і їхня ініціалізація

  unsignid int exam;  char ch =’+’, c=’A’;

  char slash=’/’,Slash=’\’;      // регістр у перемінних розрізняється slash не Slash

  char str[ ]=’’рядок символів’’;  // ініціалізація строковою константою

  char *pstr=’’рядок символів’’;

У першому оголошенні мається список перемінних, утримуючих кілька імен  (n1,n2,...). Усі вони мають тип (int) (ціле). Перемінна exam цілого типу, беззнакова й оголошена окремо. Якщо використовуються специфікатори unsigned, long, short то специфікатор int можна опускати, тому що перемінні мають тип int за замовчуванням.

У С++ мається безліч визначених типів даних, включаючи кілька видів цілих, покажчиків, перемінних із крапкою, що плаває, масивів, об'єднань, структур і тип void (порожній). Слово void означає, наприклад, що покажчик може вказувати на будь-який тип, функція не одержує чи параметрів не повертає значення. Скалярні типи включають символьні типи, цілі, що плавають типи, покажчики, посилання і перерахування. Цілі типи включають кілька різновидів цілих і символьних даних. Арифметичні типи поєднують цілі і речовинні (плавающие). Символьні типи: окремі символи, літеральні строкові константи (символьні рядки, символічні константи). Строкові константи завжди закінчуються нулем. У строкових константах можуть бути керуючі послідовності (\n, \t, \\ і ін.), що допускаються скрізь, де можуть бути друковані символи.

’’c:\\bc\\test\\f.с'’

Складені типи - містять у собі масиви, структури й об'єднання.

Кожен об'єкт заданого типу займає визначене число одиниць пам'яті. За одиницю приймається один байт. Число одиниць пам'яті, необхідне для розміщення елемента даного типу, може бути обчислене з використанням операції sizeof(тип) чи sizeof(об'єкт_типу). Нижче приведена таблиця, що показує основні типи даних, їхній розмір і діапазон значень.

Таблиця 3.1 - Розмір і діапазон значень перемінних різних типів

Тип

Розмір

у

байтах

Діапазон значень

signed char

1

128...127

unsigned char

1

0...255

signed int

2

-32768...32767

unsigned  int

2

0...65535

signed  short

аналогічно int

unsigned  short

аналогічно unsigned int

signed long

4

2147483648…2147483647

unsigned long

4

0...4294967295

float

4

-3.4е38...3.4e38

double

8

-1.7е308...1.7е308

long double

10

-1.7е308...1.7е308

Користувач має можливість зв'язати оголошення типу даних з більш простим і наочним новим ім'ям для цього типу даних (призначити псевдонім), використовуючи засіб typedef з форматом typedef <оголошення типу>  <псевдонім>.

Наприклад, визначимо нове ім'я для типу unsigned int 

     typedef unsigned int  NATUR;   // unsigned int зв'язується з ім'ям –  

                                                             // псевдонімом NATUR

     NATUR i;                                      //повідомляємо перемінну i типу insigned int

Для заборони зміни значень перемінних використовується ключове слово-модифікатор const.

     сonst int value16 = 0xf9ac; сonst unsignid int value8 = 0234; // перемінні в

    // шестнадцятирічним (Xddd) і восьмеричному (ddd) виді.

Для визначення іменованих констант і макровизначень (макросів) використовують директиву препроцесора:

#define <ІМ'Я> (argument 1[, argument 2…])< текст, що підставляється,>

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

    #define STRING  ’’\a\’’Hello, Wold ! \’’\n’’

    #define HEX  0x9b

    #define DECIMAL  155

Глобальні перемінні (extern, static) ініціюються нульовим значенням за замовчуванням.

Локальні перемінні (auto, register) не ініціюються за замовчуванням.

Приклад

/*    ЗАНЯТТЯ N 3

  Розробив  ...........

Виконати оголошення типів, перемінних з різними класами

пам'яті, констант. Увести вихідні значення перемінних,

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

Використовувати макровизначення для вибору найбільшого значення*/

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<math.h>

enum en {NACH=0, N=10, MIN=1000};//Замість наступних директив:

 //(#define NACH 0) (#define N 10) (#define MIN 1000)

typedef int norm;     //Оголошення типу norm -синоніма int

float x;                     //Оголошення глобальної перемінної (extern)

void main(void)

{clrscr();

norm і=NACH,j=NACH;   //і,j-перемінні типу int (norm)

static float min=MIN; //Оголошення глобальної перемінної (static)

auto float y=N, k=0;   //Множинне оголошення перемінних (auto)

float a,b,c,d;               //Множинне оголошення перемінних (auto)

printf("Значення перемінних після ініціалізації:\

\n\t x\t y\t min\t k\t і\t j\n");

printf("%8.5f %8.5f %8.5e %8.5f %3d %3і\n",x,y,min,k,і,j);

printf("Уведіть значення перемінних типу float:\n\ta, b, c, d:\n\t");

scanf("%f %f %f %f",&a,&b,&c,&d);

printf("Значення перемінних після введення з клавіатури,\n\t a\t \

b\t c\t d\n");

printf("%8.5f %8.5f %8.5e %8.5f\n",a,b,c,d);

x=NACH+N;

y=a*x*x*x+b*x*x+c*x+d;

min=y+і*pow(y,2);              //функція Y^2

k=x*sin(j);

x+= 0.1;                                 //x=x+0.1;

printf("\n ЗHАЧЕHИЕ Y=%f",y);

printf("\n ЗHАЧЕHИЕ min=%10.5e",min);

printf("\n ЗHАЧЕHИЕ x=%10.5f",x);

printf("\n ЗHАЧЕHИЕ k=%3.1f\n ",k);

//-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-і-

#define MAX(x,y) ((x)<(y)?(y):(x)); //Макровизначення MAX

//якщо (x)<(y), те значення результату -у, якщо (x)>(y), те -x

float af,bf,rez;  //Множинне оголошення перемінних (auto)

printf("    Уведіть через пробіл 2 числа:");

scanf("%f %f",&a,&bf);

rez=MAX(af,bf);     //af, bf-фактичні параметри

printf("Максимальне число: %4.2f ",rez);

getche();

}

/*Значення перемінних після ініціалізації:

      x               y              min                k            і        j

 0.00000   10.00000   1.00000e+05   0.00000   0       0

 Уведіть значення перемінних типу float:

 a,  b,  c,  d:

 3   4   5   6

 Значення перемінних після введення з клавіатури,

       a             b              c                        d

 3.00000   4.00000   5.00000e+00    6.00000

 ЗHАЧЕHИЕ Y=3456.000000

 ЗHАЧЕHИЕ min=3.45600e+03

 ЗHАЧЕHИЕ x=  10.10000

 ЗHАЧЕHИЕ k=0.0

 Уведіть через пробіл 2 числа: 23.4 56.89

 Максимальне число: 56.89

    

Приклад програми на С++

Скласти програму для форматованого введення і виведення даних заданого типу відповідно до індивідуального завдання приведеному в таблиці 2.1.

варіант

перший тип

другий тип

третій тип

четвертий тип

вирівнювання по краю

Точність речовинних типів

6

signed long int

Long double

unsigned int

float

правий

16.5

#include<iostream.h>

#include<stdio.h>

void main()

{long a;

double b;

unsigned c;

float d;

cout<<"Вводите\n";

cin>>a>>b>>c>>d;

cout<<"Long\n";

printf("%16.5d", a);

printf("\ndouble\n");

printf("%16.5lf", b);

printf("\nunsigned\n");

printf("%16.5d", c);

printf("\nfloat\n");

printf("%16.5f", d);

}     */

Хід роботи

  1.  Вивчити основні типи даних мови З, директиви процесора.
  2.  Розробити програму з використанням перемінних різних типів. Індивідуальне завдання приведене в табл.2. При оголошенні перемінних використовувати typedef . Створити і використовувати іменовані константи. Для введення і висновку значень використовувати функції форматованого введення-висновку scanf() і printf() із представленням значень у десятковому, шестнадцятирічному і восьмеричному виді, а також getchar(), getche(), putchar() і ін.
  3.  Для перемінних різного типу визначити їхній розмір у байтах і вивести значення на екран дисплея.
  4.  Використовувати керуючі послідовності (эскейп послідовності) різного типу при висновку повідомлень на екран.
  5.  До перемінним, зазначеним в індивідуальному завданні, додати перемінні інших типів.
  6.  Оформити звіт і зробити Захист роботи про пророблену роботу, вивчивши контрольні питання по темі.

Індивідуальне завдання

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

Таблиця 3.2 - Індивідуальне завдання

Варіант

Номер і зміст даних

1

2

3

4

5

6

7

1

ФИО

Ріст

Вага

Рік народження

Підлога

Рейтинг

2

Назва ЕОМ

Тип процесора

Обсяг пам'яті

Тип дисплея

Кількість дисководів

Вартість

3

Тип автомобіля

Колір

Кількість коліс

Кількість місць

Вантажопідйомність

Вартість

4

Тип автобуса

Кількість місць

Вантажопідйомність

Номер маршруту

Пункт призначення

Час відправлення

5

ФИО

Номер школи

Клас

Середній бал атестата

Улюблений предмет

Нелюбимий предмет

6

Назва магазина

Вид товару

Адреса

Час роботи

Кількість продавців

Номер магазина

7

ФИО

Вид спорту

Особистий рекорд

Іноземна мова

Термін занять

Кількість знайомих слів

8

Назва фірми

Обсяг річного обороту

ФИО директора

Штат

Стаж роботи

Вік директора

9

ФИО

Наявність братів і сестер

Число

Місяць

Рік народження

Вага

10

Назва книги

Автор

Видавництво

Дата видання

Країна

Кількість сторінок

11

ФИО

Номер у групі

Назва групи

Курс

Оцінки

Рейтинг

12

Назва велосипеда

Кількість коліс

Діаметр коліс

Колір

Вантажопідйомність

Швидкість

13

Назва програмного продукту

Область застосування

Обсяг займаної пам'яті

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

Режим: текстовий чи графічний

Вартість

14

Назва доля групи

Дата створення

Стиль

Склад групи

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

Вартість квитка

15

ФИО

Номер залікової книжки

Улюблений предмет

Оцінки по математиці

середній бал

Мова програмування

16

Назва журналу

Вік читачів

Кількість сторінок

Початок видання

Тираж

Передплатний індекс

17

Назва літака

Дальність польоту

Кількість місць

Кількість двигунів

Час вильоту

Час у повітрі

18

Назва праски

Ціна

Країна виробник

Вага

Температура

Наявність регулятора

19

Місто

Країна

Область

Поштовий індекс

Число жителів

Площа

20

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

Многозадачность

Обсяг пам'яті

Версія

Фірма розроблювач

Вартість

Вимоги до змісту звіту приведені в лабораторній  роботі№1.

Контрольні питання для підготовки  і лабораторної роботи

Що означають символи: ’\r’, ’\f ’, ’\b’, ’\а', ’\n’, ’\\’, ’\’’ ’, ’\’ ’, ’\000’, ’\0x00’, ’\0x0а', ’\0x5с'?

Які перемінні відносяться до скалярним, арифметичним, складеним, символьним ?

Чому в рядку ’’c:\\bc\\test\\f.с'’ знак \ повторюється два рази ?

Що означає ключове слово signed ?

Що означає ключове слово #define, для чого використовується ?

Що означає ключове слово const, для чого використовується ?

Що означає ключове слово typedef, для чого використовується?

Що означає ключове слово #include, для чого використовується ?

Чи правильно вираження #include ’’c:\bc\test\my.h’’?

Що означають запису: 1254L,  34l,  0xf9ac, 0875, 76678UL ?

Який розмір у байтах мають базові типи Си ?

Де можна оголосити перемінну? Який тип має перемінна за замовчуванням?

Що означає множинне оголошення перемінних ?

Як визначити розмір типу в байтах ?

Чи відбувається ініціалізація перемінної за замовчуванням? У яких випадках?

Назвіть клас пам'яті перемінної за замовчуванням.  Чи залежить він від місця оголошення?


 

А также другие работы, которые могут Вас заинтересовать

44228. Операційна система Windows на прикладі сучасних систем 3.92 MB
  Працює в багатозадачному режимі. Використовує процесну форму (паралельно виконується кілька програм) та потокову форму (паралельно виконуються різні частини однієї програми). При одному процесорі багатозадачний режим реалізується так: попрацювавши якийсь час, задача у Windows 98 автоматично розвантажується і керування передається наступній задачі. При перебоях під час розв'язування задачі її можна зняти без розвантаження всієї системи
44229. Товарознавство та торгівельне підприємництво. Методичні вказівки 584.5 KB
  Методичні вказівки містять загальні рекомендації щодо написання бакалаврської роботи тематику робіт загальні вимоги до написання оформлення та виконання окремих розділів. Організація виконання випускної бакалаврської роботи Керівництво бакалаврськими випускними роботами Напрямки і теми бакалаврських випускних робіт Структура і зміст випускної бакалаврської роботи. Структура бакалаврської випускної роботи
44230. Обоснование эффективности расширения деятельности ООО «ДЕЛАН» 624.5 KB
  Сущность и основные показатели экономической эффективности деятельности предприятия Сущность и критерии экономической эффективности деятельности предприятия Показатели эффективности деятельности и факторы влияющие на эффективность предприятия Пути повышения эффективности деятельности предприятия
44231. Формирование стратегии городского маркетинга (на примере города Омска) 3.85 MB
  Специалисты, относящиеся к первой группе, понимают маркетинг как сугубо экономическую процедуру, сводящуюся к рекламе города. Они вкладывают в понятие маркетинга следующее: «…маркетинг города направлен на оптимизацию соотношения между городскими функциями (услугами) и спросом на них населения, компаний, туристов и других посетителей города»
44232. РАО как организационно-правовая форма реализации и защиты авторских и смежных прав 388.5 KB
  Изучение проблемы защиты интеллектуальной собственности, в частности авторских и смежных прав, начинается с определения понятия и перечисления авторских и смежных прав в соответствии с законодательством Российской Федерации. В этой же главе даётся краткая характеристика этих прав
44233. Проблема организации труда персонала на предприятии ООО «Агрокомплекс» 1.45 MB
  Теория и практика хозяйствования показали, что в наибольшей степени этим требованиям соответствуют такие формы и методы организации труда, которые усиливают роль человека в принятии решений, роль высокоэффективных рабочих групп в решении сложных производственных вопросов, повышая при этом значение самоорганизации работника в трудовом процессе
44234. Комплексное исследование таможенной процедуры реимпорта 328 KB
  Емкость российского рынка огромна что особенно привлекает иностранные торговые организации которые заинтересованы в поставках своих товаров на этот рынок. Теоретическая категория применение таможенных процедур определяет принципиальную возможность лиц быть участниками таможенных правоотношений а правовой статус товаров помещенных в определенную таможенную процедуру очерчивает границы возможных прав и обязанностей хозяйствующего субъекта. Таможенные процедуры заявляемые при декларировании товаров Товары перемещаемые...
44235. Процесс культурной самоидентификации и определение места традиции крещения 380.5 KB
  На этом фоне взоры политиков деятелей культуры широкой общественности все чаще обращаются в сторону социальных институтов в частности институтов религии и церкви имеющих исторический опыт духовно-нравственного влияния в России. К настоящему моменту сложилась ситуация требующая социологического изучения воздействия религии в том числе Русской Православной Церкви РПЦ на духовно-нравственные процессы в российском обществе. И вся жизнь Церкви таинственна и не может не быть таинственной. Так Литургия есть не повторение Тайной Вечери...
44236. Методы лечения болезни сердца у овчарок 2.25 MB
  Основы строения и работы сердца. Большую часть болезней сердца составляют приобретенные патологии. Врожденные пороки сердца встречаются у собак крайне редко и составляют 046085 от общей популяции. Наиболее часто выявляемой приобретенной сердечной патологией является хроническая недостаточность атриовентрикулярных клапанов которая составляет 75 процентов из всех болезней сердца.