Студопедия

Главная страница Случайная страница

Разделы сайта

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






Лабораторная работа №5. Цель работы: Освоение навыков работы со структурами: описание структур, обращение к полям структуры

Структуры

Подготовил:

Студент 2 курса

группы «ИНФ 14-2»

Попов Максим

Проверила:

Водолазкина Н.А.

Алматы, 2015

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

Тема работы: Структуры

Цель работы: Освоение навыков работы со структурами: описание структур, обращение к полям структуры, использование функций при описании структур.

Оборудование рабочего места:

· компьютер с загруженной программной средой Borland C Builder.

Общие сведения:

Один из базовых типов языка С – это тип char. Он описывает символьные переменные – величины размером в 1 байт, которые используются для представления литер. Примеры символьных констант: ‘а’, ‘+’, ‘*’, ‘2’. Символьные константы заключаются в одинарные кавычки.

В С++ отсутствует специальный тип строк. Строки рассматриваются как

массивы символов, оканчивающиеся нулевым символом (‘\0’). Доступ к строке осуществляется через адрес ее первого элемента, т. е. строка является указателем на первый символ. Помните, что обычный массив тоже можно рассматривать как указатель на первый элемент.

Строка может быть объявлена либо как массив символов, либо как пере-

менная типа char*. Следующие два описания эквивалентны:

char s[] = ”hello”;

char *sp = ”hello”;

И в том и в другом случае число хранимых в памяти символов будет равным 6, а не 5, так как последним символом будет нулевой символ, обозначающий конец строки.

Доступ к отдельным символам строки осуществляется по индексам, начинающимся с нуля. В приведенном выше примере s[0]=’h’, sp[5]=’o’.

Персональное задание:

Ввести структуру (с полями – числитель и знаменатель) для описания понятия «рациональное число». Составить и протестировать функцию: по введенной дате распечатывает дату на N дней вперед.

 

Переводим блок-схему на язык С++Builder

#include < iostream>

#include < cstdlib>

#include< math.h>

using namespace std;

struct data

{

int d;

int m;

int y;

};

int main()

{

data x, y;

int n, m[13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

cout< < " Vvedite daty (dd mm yy)";

cin> > x.d> > x.m> > x.y;

cout< < " Vvedite N=";

cin> > n;

cout < < endl< < " --------------------------------------" < < endl;

y.d=x.d;

y.m=x.m;

y.y=x.y;

while(n> =366)

{

if (((y.y%4==0)& & (y.m< =2))||(((y.y+1)%4==0)& & (y.m> 2)))

{

n=n-366;

y.y++;

}

else

{

n=n-365;

y.y++;

}

}

if(n> =m[y.m]-(y.d-1))

{

n=n-(m[y.m]-y.d)-1;

y.m++;

y.d=1;

if ((y.y%4==0)& & (y.m=2))

{

n--;

}

}

else

{

y.d=y.d+n;

n=0;

}

if (((y.y%4==0)& & (y.m< =2))||(((y.y+1)%4==0)& & (y.m> 2)))

{

m[2]++;

}

int f=0;

while((n> 0)& & (f==0))

{

if(n> =m[y.m])

{

n=n-m[y.m];

y.m++;

}

else f=1;

if (y.m> 12)

{

y.m=y.m-12;

y.y++;

}

}

y.d=y.d+n;

cout< < y.d< < " /" < < y.m< < " /" < < y.y< < endl;

system(" pause");

}

 

Результат выполнения программы:

 

<== предыдущая лекция | следующая лекция ==>
Статья 301. Обязанности сторон коллективного трудового спора в ходе забастовки | 




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.