Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |