Студопедия — ВСЕМ: указать ФИО автора работы
Студопедия Главная Случайная страница Обратная связь

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

ВСЕМ: указать ФИО автора работы

 

/* ДВУМЕРНЫЕ МАССИВЫ */

 

/*

Двумерный массив представляет собой двумерную

прямоугольную таблицу из нумерованных переменных.

 

Он объявляется так:

 

int array[LINES][COLUMNS];

 

А индексируется так:

 

array[y][x]

 

где 0 <= y <= LINES - 1

0 <= x <= COLUMNS - 1

 

+-------------+-------------+-------------+------> ось x

| array[0][0] | array[0][1] | array[0][2] |...

+-------------+-------------+-------------+

| array[1][0] | array[1][1] | array[1][2] |...

+-------------+-------------+-------------+

| array[2][0] | array[2][1] | array[2][2] |...

+-------------+-------------+-------------+

|.........

V

ось y

 

Пока, на данной стадии знания Си,

я рекомендую вам объявлять двумерные массивы как глобальные

и не пытаться передавать их имена в функции как аргументы.

*/

 

/* Приведем пример, который заводит двумерный массив букв,

рисует в нем некую геометрическую фигуру,

и печатает этот массив.

 

Здесь мы приводим алгоритм Брезенхема для рисования прямых,

объяснения КАК он это делает мы опустим. Пардон.

*/

 

#define LINES 31 /* число строк */

#define COLUMNS 79 /* число столбцов */

 

char field[LINES][COLUMNS];

 

/* В данной программе массив НЕ является параметром,

мы работаем с ним как с глобальной переменной.

Функция рисования прямой линии, алгоритм Брезенхема.

*/

void line(int x1, int y1, int x2, int y2, char sym){

int dx, dy, i1, i2, i, kx, ky;

int d; /* "отклонение" */

int x, y;

int flag;

 

dy = y2 - y1;

dx = x2 - x1;

if (dx == 0 && dy == 0){

field[y1][x1] = sym; /* единственная точка */

return;

}

kx = 1; /* шаг по x */

ky = 1; /* шаг по y */

 

/* Выбор тактовой оси */

if(dx < 0){ dx = -dx; kx = -1; } /* Y */

else if(dx == 0) kx = 0; /* X */

 

if(dy < 0) { dy = -dy; ky = -1; }

 

if(dx < dy){ flag = 0; d = dx; dx = dy; dy = d; }

else flag = 1;

 

i1 = dy + dy; d = i1 - dx; i2 = d - dx;

x = x1; y = y1;

 

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

field[y][x] = sym; /* нарисовать точку */

 

if(flag) x += kx; /* шаг по такт. оси */

else y += ky;

 

if(d < 0) /* горизонтальный шаг */

d += i1;

else{ /* диагональный шаг */

d += i2;

if(flag) y += ky; /* прирост высоты */

else x += kx;

}

}

field[y][x] = sym; /* последняя точка */

}

 

int main(){

int x, y;

 

/* Заполнить поле пробелами */

for(y=0; y < LINES; y++)

for(x=0; x < COLUMNS; x++)

field[y][x] = ' ';

 

/* Нарисовать картинку */

line(0,0, 0, LINES-1, '*');

line(0,0, COLUMNS-1, 0, '*');

line(COLUMNS-1, 0, COLUMNS-1, LINES-1, '*');

line(0, LINES-1, COLUMNS-1, LINES-1, '*');

 

line(0,0, COLUMNS-1, LINES-1, '\\');

line(COLUMNS-1,0, 0,LINES-1, '/');

 

/* Распечатать массив */

for(y=0; y < LINES; y++){

for(x=0; x < COLUMNS; x++)

putchar(field[y][x]);

putchar('\n');

}

return 0;

}

Last-modified: Mon, 31 Mar 1997 04:51:37 GMT

Начало формы

 

Тема: «Вторые» люди России 18 век

Страны: кроме Менникова

Вариант исполнения:

1. Документ W. 3-10 страниц содержательного текста по теме. Поля стандарт. Шрифт – 12-14. Интервал – 1,5. В документе кроме текста должны быть иллюстрации (если они во весь лист, то это не нумеруется) В конце работы прописать источники информации (не менее трех)

2. Рукописный документ – те же требования, что и к вордовскому, но почерк должен быть разборчивым и аккуратным.

3. Презентация в формате PPT – 5-10 слайдов, текс в подстрочнике или в отдельном документе не более трех страниц (поля стандарт, шрифт – 12-14, интервал – 1,5)

ВСЕМ: указать ФИО автора работы

Название работы. Класс. Источники информации (от 3-х и более)

первый срок сдачи до 28/02/2015 (окончательный 20.03.2015)

Адреса:

25 кабинет (лично в руки) для письменных работ

[email protected]

http://vk.com/id2326023

 




<== предыдущая лекция | следующая лекция ==>
МАССИВЫ. Язык Си работает с именами массивов специальным образом | ВСЕМ: указать ФИО автора работы. Название работы. Класс. Источники информации (от 3-х и более)

Дата добавления: 2015-03-11; просмотров: 318. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия