Задачник и решебник, страница 22
Описание файла
PDF-файл из архива "Задачник и решебник", который расположен в категории "". Всё это находится в предмете "технология разработки программного обеспечения" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "технология разработки программного обеспечения" в общих файлах.
Просмотр PDF-файла онлайн
Текст 22 страницы из PDF
Решенияd(i-l);}}v o i d main (void){int gdriver = DETECT; // драйверint gmode;// режимint errorcode;// код ошибкиinitgraph(&gdriver, &gmode, PATHTODRIVER);errorcode = graphresult();if (errorcode == grOk){int p; // порядок кривойputs("Программа строит кривую Серпинского.");puts("Введите порядок кривой (1-4) \и нажмите <Enter>");printf("->");scanf("%i", &p);printf("Кривая Серпинского %i-ro порядкаХп", p ) ;nioveto(100,100) ;// кривая Серпинскогоa(p); linetodxy(u,u);b(p); linetodxy(-u,u);с(p); linetodxy(-u,-u);d(p); linetodxy(u,-u);puts("Для завершения нажмите <Enter>");getch();closegraph();}else{printf("Ошибка: %d\n", errorcode);puts("Для завершения нажмите <Enter>");233234C/C'i"*' в задачах и примерахgetch();}}// вычерчивает по точкам линию// подменим этой функцией стандартную, чтобы// видеть процесс вычерчивания кривой#include <dos.h>void far lineto(int x2, int у2){int xl,yl; // координаты начала прямой,// х2,у2 — координаты концаint х,у;// координаты текущей точкиint dx;// приращение аргументаint dy;// приращение у при рисовании// вертикальной линииint color; // цвет линииint a,b;// коэф-ты уравнения прямойint п;// кол-во точекint i;xl = getx();yl = gety();color = getcolor();if ( xl != x2 ){//не вертикальная линияa = (у2-у1)/(х2-х1);b = yl- a * xl;n = abs(x2-xl)+1;if (x2 > xl)dx = 1;elsedx = -1;X = xl;for (i = 1; i<= n; i++){Часть II.
Решения235у = а*х + Ь;putpixel(х,у,color);delay(DT);X += dx;}}else // вертикальнаялиния{n = abs(y2"-yl) ;if (у2 > yl)dy = 1;else dy = -1;X = xl;У = yl;for (i = 1; i<==n; i++){putpixel(x, y, color);delay(DT);у += dy;}}putpixel(x2, у2, color);moveto(x2, у2) ;ЧАСТЬ III. СПРАВОЧНИКСтруктура программыПрограмма на языке С+4- представляет собой набор функций,одна из которых имеет имя main.В простейшем случае программа представляет собой одну единственную функцию main.Если функция main получает параметры и возвращает результат,то она объявляется так:int main(int argc, char* argv[]){/*здесь инструкции*/return(зиачение);}Если функция main не получает параметры и не возвращает результат, то она объявляется так:void main(){/*здесь инструкцииVОсновные типы данныхк основным типам данных языка С/С+-^ относятся:• целые числа ( i n t и др.);C/C-f--^ в задачах и примерах238• дробные (действительные) числа (float и др.);О символы (char).Целые числа и числа с плавающей точкой могут быть предстарлены в различных форматах.Целые числаФорматБитДиапазон значенийint16-32 768 ...
32 767short int16-32 768 ... 32 767unsigned int160 ... 65 535епгдт16-32 768 ...32 767long32-2 147 483 648 ... 2 147 483 647unsigned long320 ... 4 294 967 295ФорматБитДиапазон значенийfloat32З^хЮ-^^.-.З^хЮ""double641,7x10-^°®... 1,7x10,+308long double803,4x10^Дробные числа1.1 xlO^СимволыБитДиапазон значенийunsigned char80 ... 255char8-128... 127Тип^^Примечание^При использовании типа char символы русского алфавита кодируются отрицательными числами.
Чтобы коды символов однозначно соответствовали кодировке ASCII {см. Приложение), следует использовать тип u n s i g n e d char.Часть III. Справочник239СтрокиСтрока -— это массив символов.Объявление:cheu: Имя [Длина ];МассивыОбъявление одномерного массива:Тип Имя[КоличествоЭлементов];Объявление двумерного массива:Тип Имя[КоличествоЭлементов1]Л^Примечание[КоличествоЭлвментов2];^Элементы массива нумеруются с нуля.
При обращении к элементу массива индекс может меняться от О до (N-1), где N — количество элементов, указанное в инструкции объявления массива.Инструкция присваиванияИнструкцияСоответствующая "обычная"инструкция присваиванияХ+ +X = X +1XX = X -1X += уX = X +уX -=уX = X — уX *==уX =Х*уX %=уX =X % уВыборИнструкция ifВариант 1if{{ Условие)240C/C++ в задачах и примерах// Здесь инструкции, которые будут// выполнены, если значение// выражения Условие не равно нулю}Вариант 2if ( Условие ){// Здесь инструкции, которые будут// выполнены, если значение// выражения Условие не равно нулю}else{// Здесь инструкции, которые будут// выполнены, если значение// выражения Условие равно нулюИнструкция switchВариант 1switch ( вьражение){саде константа!: инструкция!;case константа2: инструкция2;breaJc;break;case KOHCTaHTaj: инструкцияj;инструкция;default:ЬгегОс;breaJc ;}Вариант 2switch ( выражение )case константа!: инструкция!;case константа2: инструкция2;break;Ъг&ак;case KOHCTaHTaj: инструкцияj;break;Часть III.
Справочник241ЦиклыИнструкция forСинтаксис:for ( Инициализация;УсловиеВыполнения;Изменение{// Здесь инструкции цикла (тело цикла)})Инициализация — инструкция инициализации счетчика циклов.УсловиеВыполнения — выражение, значение которого определяет условие выполнения инструкций цикла. Инструкции циклавыполняются до тех пор, пока УсловиеВыполнения истинно,т. е. не равно нулю.Изменение — инструкция изменения параметра цикла. Как правило, эта инструкция изменяет значение переменной, котораявходит в УсловиеВыполнения.Инструкция do whileСинтаксис:do{/ / Инструкции цикла (тело цикла)}w h i l e ( УсловиеПовторения);Сначала выполняются инструкции цикла (тело цикла), затемпроверяется значение выражения УсловиеПовторения, и еслиусловие истинно, не равно нулю, то инструкции цикла выполняются еще раз. И так до тех пор, пока УсловиеПовторения нестанет ложным, т.
е. равным нулю.Инструкция whileСинтаксис:while ( УсловиеВыполнения){//}Инструкции цикла (тело цикла)242С/С-^+ в задачах и примерахСначала проверяется значение выражения УсловиеВьшолнеиия.Если оно не равно нулю, т. е. условие истинно, то выполняютсяинструкции цикла (тело цикла). Затем снова проверяется значениевыражения УсловиеВыполнеиия, и если оно не равно нулю, инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения УсловиеВыполнения не станет равным нулю.Объявление функцииТип Имя {Тип 1 Параметр!,...TnnjПараметрj){// Объявления переменных/ / и инструкции функцииreturn ( Значение),}Тип — ТИП функции, ТИП значения, которое функция возвращает. Если функция не возвращает значение, то ее тип — void.В теле функции инструкцию return в этом случае не пишут.Имя — ИМЯ функции.Tnnj, Параметру — тип и параметр функции.
Если параметриспользуется для возврата результата, то параметр должен бытьссылкой, т. е. перед именем параметра должен быть символ *.Стандартные функцииПри описании функций приняты следующие обозначения:• имена функций выделены шрифтом Courier;• перед именем функции указан ее тип, т. е. тип значения, которое функция возвращает;• параметры выделены курсивом. В качестве параметра могутиспользоваться константы, переменные или выражения соответствующих типов;• после описания функции указано имя заголовочного файла,ссылка на который должна быть включена в текст профаммыдля того, чтобы функция была доступна.Часть III.
Справочник243Математические функцииabs, tabsСинтаксис:intabs(int x);double fabs (doijble x) ;Возвращает целое (abs) или дробное (fabs) абсолютное значение аргумента, в качестве которого можно использовать выражение соответствующего типа.Заголовочный файл: <math.h>acos, asin, atari, acosi, asinl, ataniСинтаксис:double acos (double x);double asin (double x);double atan (double x);long double acos1(long double x);long do\2ble asinl (long double x) ;long doiible atanl (long double x) ;Возвращает выраженную в радианах величину угла, косинус,синус или тангенс которого передан соответствующей функциив качестве аргумента. Аргумент функции должен находиться вдиапазоне от -1 до 1.Заголовочный файл: <math.
h>COS, sin, tancosi, sini, taniСинтаксис:double cos (do\ible x) ;double sin (double x);double tan (do\ible x) ;long doiible cos 1 (long double x) ;long dovible sinl (long double x) ;long double tanl(long double x);244С/С++ в задачах и примерахВозвращает синус, косинус или тангенс угла. Величина угладолжна быть задана в радианах.Заголовочный файл: <math.h>ехр, explСинтаксис:double ехр(double х);l o n g double ехр (long doioble (х) ) ;Возвращает значение, равное экспоненте аргумента (е^, где е —основание натурального логарифма).Заголовочный файл: <math.h>pow, powlСинтаксис:double pow (dovible x, doiable y) ;l o n g double powl (long double ( x ) , l o n g dotoble (y) ) /Возвращает значение, равное хУ.Заголовочный файл: <math.h>sqrtСинтаксис:double sqrt (double x) ;Возвращает значение, равное квадратному корню из аргумента.Заголовочный файл: <math.h>randСинтаксис:i n t rand(void);Возвращает случайное целое число в диапазоне от о доRANDMAX.
Перед первым обращением к функции rand необходимо инициализировать генератор случайных чисел. Для этогонадо вызвать функцию srand.Часть III. Справочник245srandСинтаксис:void srand (unsigned x) ;Инициализирует генератор случайных чисел. Обычно в качествепараметра функции используют переменную, значение которойпредсказать заранее нельзя, например это может быть текущеевремя.Заголовочный файл: <stdlib.h>Функции преобразованияПриведенные ниже функции выполняют преобразование строк вчисловое значение и чисел в строковое представление.atofСинтаксис:doxible a t o f (const chau:* s) ;Возвращает дробное число, значение которого передано функции в качестве аргумента. Функция обрабатывает строку до техпор, пока символы строки являются допустимыми.
Строка может быть значением числа как в формате с плавающей точкой,так и в экспоненциальном формате.Заголовочный файл: <stdlib.h>atoi, atolСинтаксис:int atoi(const char* s);long atol(const char* s);Возвращает целое соответствующего типа, изображение которогопередано функции в качестве аргумента. Функция обрабатываетсимволы строки до тех пор, пока не встретит символ, не являющийся десятичной цифрой.Заголовочный файл: <stdlib.h>246C/C-i-*- в задачах и примерахgovtСинтаксис:chsur *gcvt (double Значение,int Цифр, char* Строка);Преобразует дробное число в строку.
При преобразовании делается попытка получить указанное количество значащих цифр, аесли это сделать невозможно, то числЪ изображается в форме сплавающей точкой.Заголовочный файл: <stdlib.h>itoaj Itoa, ultoaСинтаксис:char* itoa (int Значение,char* Строка, int Основание) ;char* Itoa (long Значение,char* Строка, int Основание) ;char* ultoa(unsigned long Значение,char* Строка, intОснование);Соответственно преобразуют целое, длинное целое и длинноебеззнаковое целое в строку.