Язык СИ. Использование символьного массива. Сравнение операндов. Сообщения об ошибках компилятора

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Фрагмент текста работы

графический драйвер, gm - графический режим, path - путь к графическому драйверу. Если драйвер графики egavga.bgi находится в каталоге из которого вы запускали Borland C, то инициализация графики может быть проведена следующей командой:

int gd=0, gm=0;

initgraph(gd,gm,"");

При такой установке включается графический режим, в котором 640 точек (пикселов) по горизонтали и 480 по вертикали. Начало координат (точка 0,0) находится в верхнем левом углу экрана.

Элементарные функции графики:

Установка цвета:      setcolor(cvet);                                cvet - число, определяющее цвет (0 - черный, 1 - синий, 2 - зеленый и т.д.)

Линия:                          line(xn,yn,xk,yk);                          xn,yn - координаты начальной точки,

Прямоугольник          rectangle(xn,yn,xk,yk);                xk,yk - координаты конечной точки,

Окружность                circle(xn,yn,R)                               R - радиус окружности,

Текст                             outtextxy(xn,yn,TEXT)                TEXT - строка текста (вывод в позицию c с координатами xn,yn),

Текст                             outtext(TEXT)                                (вывод в текущую позицию)

Установка цвета для bar            setfillstyle(fon,cvet)  fon - число определяющее заполнение фигуры,

Закрашенный прямоугольник  bar(xn,yn,xk,yk);

Пример: программа движения 5 случайных окружностей по случайным траекториям на экране

#include<graphics.h>

#include<stdlib.h>

#include<dos.h>

#include<bios.h>

void main()

{ int gd=0, gm=0, i, K=5, x[5], y[5], r[5], dx[5], dy[5], c[5];

randomize();   initgraph(&gd,&gm,"");

for(i=0; i<K; i++) { r[i]=10+random(25);    c[i]=9+random(6);

x[i]=r[i]+random(550); y[i]=r[i]+random(400);

dx[i]=1+random(2);     dy[i]=1+random(2); }

while(bioskey(1)==0) {

for(i=0; i<K; i++) { setcolor(c[i]); circle(x[i],y[i],r[i]); }

delay(2);

for(i=0; i<K; i++) { setcolor(0); circle(x[i],y[i],r[i]); }

for(i=0; i<K; i++) { x[i]+=dx[i]; y[i]+=dy[i];

if(y[i]+r[i]>479 || y[i]-r[i]<0) { dy[i]*=-1; c[i]=c[i]++>14?c[i]=9:c[i];

sound(70); delay(30); nosound(); }

if(x[i]+r[i]>639 || x[i]-r[i]<0) { dx[i]*=-1; c[i]=c[i]++>14?c[i]=9:c[i];

sound(150); delay(50); nosound(); }

} } }

Понятие о массивах

Заполнение массивов данными случайными данными

int M[20], k=20, i;

for(i=0; i<k; i++) M[i]=5+random(5);

int M[25][80], X=25, Y=80, i, j;

for(i=0; i<X; i++) for(j=0; j<Y; j++) M[i][j]=2.0* rand()/RAND_MAX;

void main() { //Программа посимвольного вывода

char str[14]="Базовый класс"; int k=13, i, cv;

clrscr(); gotoxy(30,12); randomize();

for(i=0; i<k; i++) { cv=1+ 14.0* rand()/RAND_MAX; textcolor(cv); cprintf("%c",str[i]); }

getch(); }

Структуры

Массивы и указатели позволяют вам создавать список элементов одного типа. Если необходимо использовать объекты, содержащее элементы различного типа, то применяются структуры.

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

typedef struct { char name[25]; char class;

short subclass;  float decl,RA,dist;  } star ;

Здесь определена структура (struct) типа star. Сделав такое описание в начале своей програмы, вы можете дальше использовать этот определенный вами тип данных:

main()

{ star mystar;

strcpy(mystar.name,"Эпсилон Лебедя");

mystar.class = 'N';     mystar.subclass = 2;  mystar.decl= 3.5167;

mystar.RA= -9.633;  mystar.dist= 0.303;  }

Вы обращаетесь к каждому элементу структуры, используя его составное имя, состоящее из имени структуры (на первом месте) и, в порядке иерархической подчиненности, имен ее образующих элементов, разделенных точками (.). Конструкция вида: varname.memname (имя переменной.имя элемента) считается эквивалентной имени переменной того же типа, что и memname, и вы можете выполнять с ней те же операции.

Структуры и указатели

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

Фактически указатели на структуры так часто используются в Си, что существует специальный символ для ссылки на элемент структуры, аресованной указателем. Рассмотрим следующий вариант предыдущей программы:

#include <alloc.h>

main() { star *mystar;

mystar = (star *) malloc(sizeof(star));            strcpy(mystar -> name,"Эпсилон Лебедя");

mystar -> class = 'N';                                          mystar -> subclass = 2;

mystar -> decl= 3.5167;                                    mystar -> RA= -9.633;

mystar -> dist= 0.303;  }

В этом варианте mystar объявляется как указатель типа star, а не как переменная типа star. Память для mystar резервируется путем обращения к функции malloc. теперь, когда вы ссылаетесь на элементы mystar, используйте ptrname -> memnane. Символ -> означает, что "элемент структуры направлен в ..."; это сокращенный вариант от обозначения (*ptrname).memnane принятый в Си.

Обмен информацией с файлами.

Библиотечные функции для работы с файлами можно разделить на две группы: потоковые и префиксные. Для всех функций возможны два режима доступа к файлу: текстовый и двоичный. В текстовом режиме производится трансляция символов CR LF (0Dh 0Ah). При чтении информации из файла в этом режиме пара символов CR LF преобразуется в один символ новой строки '\n', а при записи - символ новой строки заменяется парой символом

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.