русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Void main()


Дата добавления: 2015-08-06; просмотров: 546; Нарушение авторских прав


{

int Error();//прототип ф-ии запроса и проверки на //неверный ввод

void Rule(int, int, int);//прототип рекурсивной ф-//ии, вызывающей Mark(x,h)

int i,n;//i-счетчик цикла, n-показатель степени 2

while(1) // цикл проверки введенного n в диапазоне

{

n=Error(); // вызов ф-ии запроса и прис-е рез-та

if (n>=1 && n<=8) break;// диапазон

}

stepen=2;

for (i=1;i<n;i++) stepen=stepen*2;//цикл подсчета //степени 2^n

int gdriver = DETECT, gmode;//переменные для //инициализации граф. режима

initgraph(&gdriver,&gmode, "");//инициализация граф. //режима

if (graphresult()!=0)//проверка на ошибку

{

clrscr();

printf("\nОшибка инициализации графики!!!");

getch();

exit(1); //выйти из программы в случае ошибки

}

setcolor(10);//установка св.-зел. цвета рисования

//рисование левой границы линейки

line(0,getmaxy()-200,0,getmaxy()-210-10*n);

setcolor(11);//установка св.-сер. цвета рисования

Rule(0,stepen,n);//вызов рекурсивной ф-ии

setcolor(10);//установка св.-зел. цвета рисования

//рисование верхней границы линейки

line(0,getmaxy()-210-10*n,lastx+getmaxx()/stepen, getmaxy()-210-10*n);

//рисование нижней границы линейки

line(0,getmaxy()-200,lastx+getmaxx()/stepen, getmaxy()-200);

//рисование правой границы линейки

line(lastx+getmaxx()/stepen,getmaxy()-200, lastx+getmaxx()/stepen,getmaxy()-210-10*n);

setcolor(5);//установка роз. цвета рисования

//вывод сообщения

outtextxy(getmaxx()/2-80,getmaxy()-100,"Press any key for quit");

getch();//задержка

delay(1000);

closegraph();//закрытие графического режима

return;

}

//*******************************************************

//ф-ия запроса и проверки (защита от неверных нажатий)

int Error()//заголовок ф-ии

{

int i;



char str[10];//вводимая строка

int str_int[2]; //массив из 2 целых значений

clrscr();//очистка экрана

// печать строки на экран

printf("\n\t\tВведите показатель степени 2 разрешения 1/2^n (1-8): ");

gets(str);//ф-ия ввода строки с клавиатуры

i=1;

if (strlen(str)>2) return 0;

while (i<=strlen(str))//цикл преобразования кодов //символов из char в int,

{//а также анализ на код не цифры

str_int[i-1]=(int)str[i-1];//в эл-ты массива //str_int поместить преобразованные в тип int коды //введенных символов

if (isdigit(str_int[i-1])==0) return 0;//выйти из //ф-ии с передачей 0, если это код не цифры

i++;

}

return atoi(str);//ф-ия преобразования введенной//строки в целое число типа int, а также возвращение //этого рез-та в главную ф-ию main()

}

//*******************************************************

//рекурсивная ф-ия, вызывающая Mark(x,h)

void Rule (int l, int r, int h)//заголовок ф-ии

{//l-условная абсцисса левой границы линейки

// r-условная абсцисса правой границы линейки 2

// h-высота самой длинной метки

void Mark (int, int);//прототип ф-ии рисования меток

int m=(l+r)/2;//делим линейку пополам

if (h>0)//если высота метки не нулевая, то

{

Rule(l,m,h-1);//вызов ф-ии из самой себя (рекурсия), //сначала работаем в левой части линейки

Mark(m,h);//вызов ф-ии рисования метки

Rule(m,r,h-1);//вызов ф-ии из самой себя (рекурсия), //потом работаем в правой части линейки

}

}

//*******************************************************

//ф-ия рисования меток

void Mark (int x, int p)//заголовок ф-ии

{//x-коэффициент абсциссы метки, p-коэффициент высоты //метки

lastx=getmaxx()/stepen*x;//в глоб. перем. заносим //текущую абсциссу метки

//рисуем метку

line(lastx,getmaxy()-200,lastx,getmaxy()-200-p*10); return;//возврат из ф-ии

}

-------------------------------------------------------------------------------------------------------

 

 

Программа 3 (Ханойские башни)(Имя файла: han_gr_3.cpp) :

-------------------------------------------------------------------------------------------------------

//*******************************************************

//Подключаемые заголовочные файлы

#include <stdio.h> //стандартный ввод-вывод

#include <conio.h>//для ф-ии getch() и т. д.

#include <ctype.h>//для ф-ии isdigit()

#include <string.h>//работа со строками

#include <stdlib.h>//стандартная библиотека (для ф-ии //atoi(),exit(1))

#include <graphics.h>//работа с графикой

#include <dos.h>//для ф-ии delay()

//*******************************************************

//объявление глобальных переменных

struct zap//структура, состоящая из

{ int y1,y2;//ординат верхнего и нижнего угла объекта

};

zap arr_A[14],arr_B[14],arr_C[14];//3 массива(3 //столбика) из структур

int i;//счетчик цикла

char ch;//код символа

FILE *st1;//указатель на файл st1

int w=54;//доп. переменная для рисования дисков

//*******************************************************

//Основная функция main()



<== предыдущая лекция | следующая лекция ==>
Void main() | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.091 сек.