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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Билет №21. Производные типы данных, массивы, работа с ними





В С/С++ программист может определить новый идентификатор типа:

· type def

· type def float real;

Например: real i,j,k; или #define real float тут real будет восприниматься как float.

Массив - это конечный набор данных одного и того же типа.

· Массив определяется именем, типом, размерностью и размером.

· Массивы бывают одномерные, двумерные и многомерные.

· Независимо от размерности в памяти он записывается в виде одномерного массива.

· Все индексы начинаются с нуля.

· При описании массива можно определить началные значения элементов.

<тип><имя>[<размер>]

Размер массива - это константные выражения, записанные через запятую, определяющие колличество элементов по каждому индексу.

Ввод\вывод массива:

for(i=0; i<10; i++){

cout<<"a["<<i<<"]=";

cin>>a[i];

}

for(i=0; i<10; i++){

cout>>a[i];

 

Билет №22. Указатели, работа с указателями в С/С++.

Указатели -переменные ссылочного типа, значением указателя явл. адресс первого байта ячейки, занимаемого константой\переменной\функцией.

В С/С++ сущ. указатели на обьект, на void. Чаще всего при описании указателя определяется тип обьекта, на который может ссылаться указатель.

Например:

· int x, y, z[30]; \\ переменные и массив целочисленные.

· int *p, *q; \\ указатели на переменные целочисленные.

· float t; \\ действительные переменные.

Указателю можно присвоить:

1. Пустую ссылку, это NULL;

2. Адресс обьекта базового типа с помощью операции взятия адреса.

3. Можно сравнивать указатель на равенство.

Например: q=NULL; p=&x; if(q==NULL){q=p;}

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

·
Указатель на функцию

· тип(*имя)(список типов аргументов)

· int(*fun1)(double, double);

Указатель на функцию используется в тех случаях, когда тип обьекта, адрес которого нужно хранить заранее не известен или мы хотим хранить в одной и той же области данных различного типа.

Билет №23. Строковый тип в С/С++, стандартные функции для работы со строками.

В языке С нет переменных строкового типа.

ASC||Z-строка.

Строки можно описать:

1. Как массив символов.

2. С помощью указателя на символ.

Например: char *p; \\ адрес данных типа char

char my_string[10]; \\ массив символов

Память под строку, если описать как массив, выделяется компилятором, а под динамическую строку во время выполнения программы.

Строки при описании можно инициализировть строковыми константами.

char my_string[10]="sgu";

Нуль формируется автоматически: 's','g','u','\0'

Стандартная библиотека содержит набор функции:

· strcpy(s1,s2); \\ копирует s2 в строку s1.

· strncpy(s1,s2,n); \\ копирует s2 в s1 n символов

· strcmp(s1,s2); \\ сравнивает строки, возвращает 0 если равно, если s1<s2- отрицательное, если s1>s2 - положительное.

· strlen(s);\\Длина строки

· strstr(s1,s2);\\ указатель на начало строки s2 в строке s1 и NULL, если s2 нет в s1.

· strcat(s1,s2);\\ в s1 записывает соединённую строку s1 и s2

· strypr(s);\\Преобразует строчную запись в прописную.

· strlwr(s);\\Прописные в строчную.

· strnset(s,c,n);\\Заменяет первые n символов строки s на символ c.

Пример: \\ проверка пароля. запрос не более 3 раз.

#include <stdio.h>

#include <string.h>

using namespace std;

int main(){

char s[80], pasw[]="kuku";

int i,k=0;

for(i=0;!k&&i<3;i++){

print("\n wwedite parol \n");

gets(s);

if(strstr(s,pasw))k=1;};

if(k) print("\n parol prinyat \n");

else print("\n parol ne prinyat");

return 0;

}

 

Билет №24. Работа со структурами в С/С++.

Структура в С/С++ -это набор данных(полей) различного типа.

Пример:

struct anketa

{char fam[20];

enum{male, female} pol;

int godr;

float ves;

}ank[30]; \\ описали массив из 30 структур типа anketa.

struct anketa x,y;

anketa sotr1,sotr2;

struct *p;\\ указатель на структуру.

Обращение к полям структуры:

ank[2].pol= male; x.godr =1980; y.godr =x;

p= &ank[5];

p-> ves = 78.5

strpy(x.fam,""Петров"); \\ копировать Петров в x.fam

Нельзя присваивать x.fam= "Петров"; если описать поле fam не как массивЮ а как указатель на строку.

Ввод полей структуры можно реализовать:

cin>> x.godr; cin>>x.res; cin>> x.pol;

Поля структуры могут быть любого типа, в том числе и структурами.


Обращение к полю структуры:

ank[2].fio.fam = "Иванов";

 

Билет №25. Обьединения в С/С++, отличие от структур.

Так же как и структуры, обьединения - это набор данных различного типа, но в отличие от структуры размер области памяти, занимаемый обьединением равен сумме размеров полей, а не размеру максимального поля, и тогда использование полей - это варианты искользования однойи той же структуры.

 







Date: 2015-09-05; view: 612; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию