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 ?

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

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

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

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

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

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


 

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

41546. Основные понятия рынка ценных бумаг 279.5 KB
  Основные понятия рынка ценных бумаг Основные понятия рынка ценных бумаг Сбережения и инвестиции Классы и виды ценных бумаг Инструменты денежного рынка и рынка капиталов Место фондового рынка в рыночной структуре и его роль в национальных экономиках Функции рынка ценных бумаг Классификации фондовых рынков Заемщики и поставщики капитала на рынке ценных бумаг Инвестиционные риски МИРОВОЙ ОПЫТ. При этом покупатель становится собственником не золота как товара а владельцем ценной бумаги что освобождает его от затрат на хранение металла....
41547. Виды и стоимость акций 224.5 KB
  Виды и стоимость акций Виды и стоимость акций Категории и типы акций МИРОВОЙ ОПЫТ. Классы акций Виды стоимостей акций Коэффициенты рыночной оцененности акций Категории и типы акций Понятия категории и типы в отношении акций являются юридически определенными понятиями. Основополагающие различия разных категорий и типов акций заключаются в правах предоставляемых ими.
41548. Рынки акций 622 KB
  Рынки акций Тема 3. Рынки акций Рынки акций МИРОВОЙ ОПЫТ. Как работает НьюЙоркская фондовая биржа Фондовые индексы как индикаторы состояния рынков ценных бумаг Доходность акций и прирост капитала Риски инвестирования в акции Рынки акций История фондовых рынков насчитывает почти 250 лет. В США сложился самый мощный на сегодняшний день рынок акций как по количеству регулярно котируемых ценных бумаг так и по объему заключаемых сделок.
41549. Типы облигаций и их доходность 357 KB
  Корпоративные облигации Показатели эффективности вложений в облигации МИРОВОЙ ОПЫТ. Характеристика облигаций как инструмента фондового рынка Облигации относятся к классу долговых ценных бумаг. № 39ФЗ дает следующее определение облигации: Облигация – эмиссионная ценная бумага закрепляющая право ее владельца на получение от эмитента облигации в предусмотренный в ней срок ее номинальной стоимости или иного имущественного эквивалента.
41550. УСТРОЙСТВО ГИДРАВЛИЧЕСКОГО СТЕНДА 1.35 MB
  Режимы течения представляет собой круглую трубу с встроенной на входе капиллярной трубкой для подачи подкрашенной жидкости. Цель работы Визуальное наблюдение изменения составляющих полного напора потока жидкости в трубе переменного сечения. Общие сведения Работа заключается в экспериментальном построении энергетических графиков пьезометрической и энергетической линий одномерного потока жидкости. Уравнение Даниила Бернулли полученное им в 1738 году представляет собой частный случай всеобщего закона сохранения энергии...
41551. Внутренняя структура инновационных процессов на предприятии 155 KB
  Целевые качественные или количественные изменения в выборе и использовании материалов сырья информации оборудования информации работников и других ресурсов Целевые качественны или количественные изменения в результатах производственно хозяйственной деятельности т. в изделиях услугах технологии ИН структуры предприятия ИН на “выходе†предприятия Целевые изменения в производственных обслуживающих и вспомогательных процессах как по качеству так и по количеству а так же по организации и способу ее обеспечения. То есть изменения...
41552. МИРОВОЙ ОПЫТ И СХЕМЫ ФИНАНСИРОВАНИЯ ИННОВАЦИЙ 236.5 KB
  Если правительство заинтересовано в реализации инновационного проекта оно может действовать в следующих направлениях: Национализация перспективного проекта когда сотрудники инновационной фирмы получают возможность на стабильных рабочих местах не опасаясь неожиданностей но под постоянным контролем; Поддержка проекта когда создается микроструктура в государственном аппарате управления призванная шефствовать над проектом. Фирма получает при этом помощь не теряя самостоятельности; Пособие государства когда выделяется единовременная...
41553. ФИНАНСИРОВАНИЕ ИНВЕСТИЦИЙ 72 KB
  Оценка потребности в финансировании Исходным пунктом для организации финансирования является расчет потребности в средствах необходимых для реализации проекта. Он производится на основе графика выполнения работ что вопервых обеспечивает привязку ко времени а вовторых позволяет увязать объемы финансирования и направления расходования средств. Итогом работы является таблица в которой потребность в средствах расписывается по месяцам. В этом случае более удобна следующая форма представления расчета: Виды работ Месяцы выполнения...
41554. ИНВЕСТИЦИОННЫЙ ПРОЕКТ 472.5 KB
  Инвестиционный проект – это план программа хозяйственного мероприятия или предпринимательского проекта реализация которых требует привлечения инвестиций. Структура затрат на реализацию проекта а также доходов получаемых в результате инвестиций традиционно отлична для каждой из выделенных стадий. Определение целей и класса инвестиций 1. Метод расчета рентабельности инвестиций 2.