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 ?

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

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

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

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

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

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


 

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

46052. КОДЕКС ПРОФЕССИОНАЛЬНОЙ ЭТИКИ РОССИЙСКОГО ЖУРНАЛИСТА 25 KB
  Журналист всегда обязан действовать исходя из принципов профессиональной этики зафиксированных в настоящем кодексе принятие одобрение и соблюдение которого является непременным условием для его членства в Союзе журналистов России. Журналист соблюдает законы своей страны но в том что касается выполнения профессионального долга он признает юрисдикцию только своих коллег отвергая любые попытки давления и вмешательства со стороны правительства или кого бы то ни было. Журналист...
46053. Теории потребительского поведения 8.37 MB
  Приходя на рынок, потребитель ставит перед собой цель: максимальное удовлетворение своих потребностей, получение наивысшего уровня полезности от потребления благ. Потребитель не является абсолютно свободным в своем выборе.
46054. МАРКЕТИНГОВЫЕ СТРАТЕГИИ В ПР 29.94 KB
  Позиционирование является одной из важнейших маркетинговых стратегий. Позиционирование продукта особенно важно по отношению к другим маркам в рамках той же категории продукта Schiffmn L. Позиционирование партийных программ времен КПСС выражалось в лозунгах Каждой семье отдельную квартиру к 2000 году и под. Джоан Райан и Джордж Леммон пытаются отграничить позиционирование от построения имиджа: позиционирование в сильной степени отличается от построения имиджа поскольку оно включает помещение продукта или услуги в конкурирующий контекст.
46055. Медиарилейшнз: современное состояние и перспективы развития 34 KB
  Отличительной чертой этих отношений сложившихся на политическом рынке России в последние 34 года можно назвать непосредственное участие СМИ в многочисленных избирательных кампаниях ставших сегодня неотъемлемой частью жизни российского общества. При этом важно отметить что включенность СМИ в избирательный процесс чаще всего сопровождается так называемыми информационными войнами разгорающимися в борьбе за властный ресурс между крупнейшими политикофинансовыми группами страны. Большая часть электронных и печатных СМИ сконцентрировалась в...
46056. Особенности макро- и микросреды функционирования российских предприятий 58.5 KB
  Маркетинговая среда совокупность активных субъектов и сил действующих за пределами фирмы и влияющих на возможности руководства службой маркетинга устанавливать и поддерживать с целевыми клиентами отношения успешного сотрудничества. Определяет цели фирмы общие стратегические установки и текущую политику. Поставщики это деловые фирмы и отдельные лица обеспечивающие компанию и ее конкурентов материальными ресурсами необходимыми для производства конкретных товаров и услуг. Маркетинговые посредники это фирмы помогающие компании в...
46057. Организация специальных PR-мероприятий: разработка общей концепции и сценария мероприятия; организация и курирование мероприятия; оценка эффективности 25.56 KB
  Организация специальных PRмероприятий: разработка общей концепции и сценария мероприятия; организация и курирование мероприятия; оценка эффективности. По Алёшиной: Специальные события это мероприятия проводимые компанией в целях привлечения внимания общественности к самой компании её деятельности и продуктам. Мероприятия имеющие значение для общественности более широкой чем сами участники предполагается освещать в СМИ. Специальные мероприятия как правило привязывают к особым корпоративным датам событиям появлению новинок.
46058. Оценка эффективности PR-кампании 44 KB
  Планирование PRмероприятия дает возможность проведения оценки эффективности. Оценка эффективности это всегда сравнение достигнутых результатов с планируемыми поэтому прежде всего необходимо определить стратегическую цель и тактические задачи проводимой PRдеятельности. Оценка эффективности PRкампании всегда напрямую связана с ее планированием так как это позволяет уже на этапе подготовки любой PRактивности...
46059. Уравнения движения механизма 479.5 KB
  Выполнив приведение сил и масс, любой механизм с одной степенью свободы (рычажный, зубчатый, кулачковый и др.), сколь бы сложным он ни был, можно заменить его динамической моделью...
46060. Кинематика и динамика вращательного движения АТТ 500.5 KB
  Кинематические характеристики частицы (поступательного движения АТТ) – перемещение , скорость и ускорение не могут служить характеристиками АТТ, участвующего во вращательном движении (для разных точек АТТ они разные). Нужны другие характеристики.