Uploaded by Айсылу Байгускарова

Практические работы

advertisement
Простейшая программа на Си
Простейшая программа при изучении любого языка программирования выводит на
экран приветствие Hello World. И нашим первым шагом в изучении Си будет программа
Hello World. Чтобы использовать операторы ввода и вывода информации в Си
используются заголовочные файлы
Структура программы Си
#include <stdio.h>
Начало любой программы в Си начинается с main()
{ любая программа начинается с открывающей скобки
} любая программа заканчивается закрывающей скобкой
После каждого оператора ставится точка с запятой ;
getch(); оператор ожидания нажатия любой кнопки, чтобы программа не закрывалась
сразу после выполнения
Чтобы использовать этот оператор, в начале программы необходимо
объявить заголовочный файл
#include <conio.h>
В программе очень полезно писать разъясняющие комментарии.
Чтобы написать комментарий в строке используется // комментарий
Чтобы написать комментарий из нескольких строк используется конструкция
/* комментарии */
Пример простейшей программы на Си
Чтобы написать программу на си запустите среду разработки dev c++, выберите в
верхнем меню Файл/Создать/Исходный файл, либо перейдите по ссылке
https://www.onlinegdb.com/ и воспользуйтесь онлайн версией программы
Напишите программу в окне. Для компиляции и запуска программы на си нажмите
пиктограмму разноцветный квадрат или клавишу F9, в онлайн версии кнопку Run
Сохраните программу со своим именем, после сохранения она запустится
Переменные в си Операции с переменными в си
Переменные в си служат для хранения, изменения информации. У
каждой переменной в си есть имя и значения. Значения переменной в ходе программы си
можно изменять. Чтобы работать с переменными в си, их нужно сначала объявить. Это
значит указать их тип и имя.
Примеры объявления переменных в си
int a; // объявлена целочисленная переменная с именем a
float b, c; //объявлены вещественные переменные b и с
char e; // объявлена символьная переменная с именем e
Чтобы работать со строкой символов в си используется объявление массива символов.
char имя строки[длина строки];
Пример объявления строковой переменной в си
char name[50]; //объявлена строка с именем name длиной 50
Чтобы присвоить или изменить значение переменной используется =
Примеры присваивания значений переменных в си
int a,b,c; // объявлены целочисленные переменные a, b, c
a=10; // переменной a присваивается значение 10
b=20; // переменной b присваивается значение 20
c=a+b; // в переменную с присваивается сумма a и b
char c; // объявлена символьная переменная с
c=’V’; // символьной переменной c присваивается символ V
char name[50]; // объявлена строка name
name=”Вася”; // строке присваивается текст Вася
Знаки арифметических действий с числовыми переменными в си
+ — сложение, вычитание
* / умножение, деление
% остаток от деления
Стандартные функции для числовых переменных
abs(i) модуль целого числа i
fabs(x) модуль вещественного числа x
sqrt(x) квадратный корень из вещественного числа x
pow(x,y) вычисляет x в степени y
Вывод информации на экран в Си.
Для вывода текста на экран в Си используется оператор printf
Вывод информации на экран в си оператор printf форматированный вывод.
printf (“текст”); // вывод текста
printf (“текст\n ”); // вывод текста и переход на другую строку
Пример программы 1. Программа в си выводит на экран Hello world!
#include <stdio.h>
#include <conio.h>
main()
{
printf("Hello world!");
getch();
}
Для вывода значений на экран в си используется формат вывода в си оператор printf,
который задается в кавычках.
printf(“формат вывода”, имя переменной)
Для вывода целочисленной переменной в си в формате вывода используется ключевое
выражение %d
printf (“текст %d”, имя переменной); // выводит текст и значение
целочисленной переменной
Например вывод переменной в си на экран:
printf(“значение переменной a = %d ” , a);
В формате вывода для разных типов переменных используется
%f вывод вещественного числа (переменная типа float)
%с вывод одного символа (переменная типа char)
%s для вывода символьной строки
Для вывода символьной строки используется ключевое выражение %s
Для вывода нескольких переменных в кавычках указывается такое же количество
соответствующих выражений (%d , %f,%c, %s). Так задается формат вывода. При этом
значения при выводе будут браться из переменных, которые перечисляются после
формата через запятую.
Например вывод на экран нескольких перменных в си
printf(“%d+%d=%d ” ,a,b,c);
Пример программы 2. Программа на си выводит на экран сумму двух чисел.
Ввод данных с клавиатуры в Си
Для форматированного ввода данных в Си используется оператор scanf
Чтобы ввести записать информацию в переменную с клавиатуры в си с
помощью оператора scanf необходимо указать сообщение и переменную, в которую
будет записываться с клавиатуры значение
scanf (“формат ввода”,&имя переменной )
В формате ввода используется
%d ввод целого числа (переменная типа int)
%f ввод вещественного числа (переменная типа float)
%с ввод одного символа (переменная типа char)
Например:
scanf (“%d”, &a); // ввод с клавиатуры значения для целочисленной переменной a
Пример программы 3. Программа в си запрашивает ввод с клавиатуры двух целых
чисел, выводит их сумму на экран
Для ввода строки в си с помощью оператора scanf необходимо объявить строку и
считать ее с помощью scanf()
char имя строки[ длина строки];
scanf(“%s”, имя строки);
Пример программы 4. Программа запрашивает ввод имени и отчества с
клавиатуры и выводит на экран приветствие с обращением по имени и отчеству
Самостоятельная работа
1. Создайте 4 переменные с разными типами данных и предложите
пользователю ввести в них значения. После ввода, отобразите их на экране.
2. Создайте 5 переменных типа char, предложите пользователю ввести
слово из пяти букв и покажите эти символы (слово) на экран. (Символы
вводить латиницей, т.к. кирилица будет отображаться некорректно.
3. Пользователь должен ввести 2 числа. Вам надо показать на экран
произведение этих чисел, сумму и разницу. Покажите так же среднее
арифметическое этих введенных чисел.
Условия в Си.
Условия в си оператор if в c
В программах Си часто нужно реализовать то или иное действие в зависимости от
выполнения того или иного условия. Для этого в Си используется оператор условия If
If (условие)
{
действия в случае выполнения условия
}
Условие в операторе If в программах си обязательно указывается в скобках ()
В операторах условия if используется также конструкция
if ( условие )
{
действия в случае выполнения условия. Условие истинно
}
else
{
действия в случае не выполнения условия. Условие ложно
}
В условии используются знаки логических отношений
> < больше, меньше Например (a>b)
>= <= больше или равно, меньше или равно
== равно Например (a==0)
!= не равно
Пример программы 5 Программа на си для поиска большего числа из трех. В
программе вводятся три вещественных числа , она определяет наибольшее из них и
выводит его на экран.
Пример программы 6. Программа на си тест по географии. Программа выводит
вопросы на экран по географии, запрашивает варианты ответов, проверяет правильность
каждого ответа , суммирует и выводит на экран количество правильных ответов.
Логические операции в Си
Логические операции в си.
В операторе if в си можно использовать составные условия, которые состоят из
нескольких простых условиях и связаны с помощью логических операций.
if (условие 1 логическая операция условие 2)
{
Действия выполняются в случае истинности всего логического выражения
}
Для логической операции И в си используется &&
Общее условие будет истинным, только когда оба условия выполняются (истинны).
Для логической операции ИЛИ в си используется ||
Общее условие будет истинным, если хотя бы одно условие выполняется
(истинным)
Например, выделение диапазона
if (a>60 && a<100)
{
printf(“переменная лежит в диапазоне от 60 до 100”);
}
Пример программы 7 Программа на си для расчета коэффициента кетле
Программа запрашивает пол, рост, вес и с помощью индекса Кетле определяет в
норме ли вес.
Самостоятельная работа
1. Пользователь вводит порядковый номер пальца руки. Необходимо
показать его название на экран.
Множественный выбор в СИ
Если в программе си есть несколько вариантов действий и их выбор зависит от
значения переменной, удобно использовать в Си оператор множественного выбора switch
switch (переменная)
{
case значение 1 : действие 1; break;
case значение 2 : действие 2; break;
…
default : действие если переменная не принимает указанных выше значений;
}
В случае если переменная будет равна значению 1, то будет выполнено лейтсвие 1, в
случае если значение перменной равно значение 2,то будет выполнено действие 2
и так далее. В оператре множественного выбора switch в Си можно высталять любое
количество занчений для переменной. Если значение переменной не равно никакоум
варианту, то будет выполнено
действие после default :
Пример программы 8 Программа на си простейший калькулятор
Программа вводит два числа и операцию, вычисляет выражение и выводит на
экран.
Циклы в Си.
Цикл for в си
На этом уроке мы познакомимся с циклическими алгоритмами и циклом For в си.
Когда нужно выполнить определенные набор команд несколько раз, в Си используются
циклы
Когда известно число повторений используется в Си оператор for
for (присваиваем счетчику начальное значение; условие на счетчик; оператор изменения
счетчика )
{
// набор команд, который будет повторяться
}
Цикл for в си будет выполняться до тех пор, пока будет выполняться условие на
счетчик.
Часто используется оператор изменения счетчика переменная счётчика ++, он
увеличивает переменную счетчика цикла на 1.
Переменная, отвечающая за счетчик цикла, часто называется просто переменной цикла.Ее
можно использовать внутри цикла.
Пример программы 9 Программа на си выводит числа от 1 до 20
Вложенные циклы в Си.
В Си один цикл for можно вставлять в другой цикл for.
for (счетчик внешнего цикла; условие на счетчик внешнего цикла; изменение счетчика
внешнего цикла)
{
// внутренний цикл
for (счетчик внутреннего цикла; условие на счетчик внутреннего цикла; изменение
счетчика внутреннего цикла)
{
// набор команд, который будет повторяться
}
}
Пример программы 10. Запрашивается ширина и высота прямоугольника ,
рисуется прямоугольник заданных размеров с помощью символа *.
В этой программе внешний цикл используется для того чтобы выводились все строки, для
отображения каждой строки используется внутренний цикл.
Самостоятельная работа
1. Написать программу, которая будет показывать на экран квадрат
числа, введенного пользователем. Пользователь должен сам решать – выйти
из программы или продолжить ввод. (Подсказка – необходимо запустить
бесконечный цикл, в котором предусмотреть его прерывание, при
наступлении определённого условия).
2. 2. В спортзал ежедневно приходит какое-то количество посетителей.
Необходимо предложить пользователю ввести такие данные: сколько человек
посетило спортзал за день, ввести возраст каждого посетителя и в итоге
показать возраст самого старшего и самого молодого из них, а так же
посчитать средний возраст посетителей.
Цикл с условием в Си.
Цикл с условием while в Си
На этому уроке мы познакомимся с циклами while в программах си, которые
выполняются пока выполнено некоторое условие Когда не известно заранее количество
повторений цикла и повторения нужно прекратить при выполнении определенного
условия, то используется в Си оператор While
while (условие)
{
// набор команд, который будет выполнятся пока соблюдается условие
}
Если необходимо прекратить исполнение цикла при выполнении условия, то в си
используется конструкция while (!(условие))
Цикл с условием в программах си можно использовать для контроля вводимой
информации. Например нужно запросить вес человека. При вводе этой информации
необходимо проконтролировать, чтобы вводимый параметр был больше нуля и меньше
700, т.е. ввод будет осуществляться до тех пор, пока он не попадет в указанный диапазон.
Пример программы 11 программа на си ввод веса человека с контролем
вводимых данных
Цикл while в си можно использовать для запроса на продолжение выполнения
программы.
Пример использования цикла while в си
ans=1; // начальное значение ответа на продолжение программы
// пока ответ положительный ans равен 1, выполняется программа
while (ans==1)
{
// команды программы
// запрос на продолжение выполнения команды
printf("Хотите продолжить выполнение программы? 1 -Да. 2 — Нет. \n");
scanf("%d", &ans);
}
Пример программы 12 Программа на си тест на знание квадратов
Тест на знание таблицы квадратов. Задается начальное значение, с которого будет
начат тест. С этого числа запрашиваются квадраты чисел. Ведется учет правильных
ответов. В программе запрашивается вопрос на продолжение теста. После завершения
теста выводится информация о количестве вопросов и правильных ответов.
Самостоятельная работа
1. Необходимо суммировать все нечётные целые числа в диапазоне,
который введёт пользователь с клавиатуры.
2. Нарисовать равнобедренный треугольник из символов ^. Высоту
выбирает пользователь. Например: высота = 5, на экране
Графика в Си.
В графическом режиме в Си можно отображать на экране различные фигуры,
строить изображения, реализовывать анимацию и компьютерные игры.
Чтобы работать в графическом режиме в Си, необходимо перейти в графический
режим, инициализировав графическое окно си initwindow ( ширина окна, высота окна ); в
котором и будут рисоваться изображения. После завершения работы с графикой,
необходимо выйти из графического режима с помощью команды closegraph();
Структура программы с графикой в Си.
#include <graphics.h> // подключение заголовочного файла с графическими функциями
#include <conio.h>
main()
{
initwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500
…рисуем графические объекты
getch(); // ждем нажатия клавиши
closegraph(); // закрываем графический режим
}
Основные графические объекты в си, такие как точка, линия, окружность,
прямоугольник задаются с помощью системы координат. Система координат в
графическом режиме Си задается следующим образом. Верхний левый угол экрана имеет
координату x=0 и y=0.
Координата X задается слева направо. Т.е. чем больше X, тем правее точка.
Координата Y задается сверху вниз. Т.е. чем больше Y, тем ниже точка.
Максимальные X это ширина окна. Максимальное Y это высота окна.
Задание цвета изображения в Си
Чтобы задать цвет изображаемого объекта, используется оператор setcolor(номер
цвета);
Таблица цветов в Си.
0 черный
1 синий
2 зеленый
3 морской волны
4 красный
5 фиолетовый
6 коричневый
7 светло-серый
8 темно-серый
9 светло-синий
10 светло-зеленый
11 светлый морской волны
12 светло-красный
13 светло-фиолетовый
13 светло-фиолетовый
14 желтый
15 белый
Например
setcolor(4);// устанавливаем красный цвет
Отображение точки в Си.
Для рисования точки в графических программах си используется оператор
putpixel (x, y, номер цвета );
x, y – координаты точки
номер цвета – цвет, которым будет отображена точка
Отображение линии в Си
Для рисования отрезка в графических программах си используется оператор
line (x1,y1,x2,y2)
x1, y1 – координаты одного конца отрезка
x2, y2 – координаты другого конца отрезка
Отображение окружности в Си
Для рисования окружности в графических программах си используется оператор
circle (x, y,r );
x, y – координаты центра окружности
r- радиус окружности
Пример. Отображение окружности белого цвета с центром 100, 100 и радиусом 20.
setcolor(15);// устанавливаем цвет рисования 15 - белый
circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20
Отображение прямоугольника в Си.
Для рисования прямоугольной рамки в графических программах си используется
оператор.
rectangle (x1, y1, x2, y2);
x1, y1 – координаты верхнего левого угла прямоугольника
x2, y2 – координаты нижнего правого угла прямоугольника
Чтобы задать цвет рамки необходимо предварительно установить цвет рисования с
помощью оператора setcolor(номер цвета);
Для отображения закрашенного прямоугольника в Си используются два
оператора.
setfillstyle ( 1, номер цвета );
bar (x1, y1, x2, y2);
x1, y1 – координаты верхнего левого угла прямоугольника
x2, y2 – координаты нижнего правого угла прямоугольника
Закрашивание ограниченной области в Си.
Чтобы закрасить определенным цветом целую ограниченную область в
графической программе си используются два оператора.
setfillstyle (1, цвет закраски );
floodfill (x, y, цвет границы области);
x, y – координаты внутри области
цвет закраски – цвет , которым будет закрашиваться область
цвет границы области – цвет границы закрашиваемой области
Пример закрашенного кругав графических программах си
setcolor(15);// устанавливаем цвет рисования 15 - белый
circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20
setfillstyle ( 1, 15 ); // устанавливаем цвет заполнения круга белый -15
floodfill (100, 100, 15); // заполняем окружность, указывая точку внутри ее – центр
Пример графической программы на си
Пример программы 13 графическая программа на си рисует автомобиль.
Случайные числа в Си
Случайные числа в си
На этому уроке мы научимся использовать случайные числа в программах на си.
Часто в программах, например играх, необходимо получить случайное число. В Си
используется функция для определения натурального случайного числа в диапазоне от 0
до 32767.
rand();
Чтобы использовать эту функцию необходимо указать заголовочный файл в начале
программы stdlib.h
Чтобы получить случайное число в диапазоне от 0 до N-1 используется выражение
rand() % N;
Пример программы 14 Программа на си для вывода последовательности
случайных чисел в заданном диапазоне
Следует заметить, что данная функция будет всегда выдавать одну и ту же
последовательность, при каждом запуске программы. Это обусловлено тем, что каждое
последующее число рассчитывается по формуле в зависимости от предыдущего.
Иногда, необходимо выдавать всегда разные непредсказуемые случайные числа. Для
этого можно использовать системное время компьютера.
Чтобы вызвать системное время компьютера (например секунды) используется
заголовочный файл time.h Объявить его в начале программы #include <time.h>
Использовать функцию, которую необходимо разместить в начале программы.
// функция, выдающая системное время секунды
int sec()
{
time_t t;
struct tm *t_m;
t=time(NULL);
t_m=localtime(&t);
return t_m->tm_sec;
}
Далее в программе, где нам нужно задать случайное число мы
используем выражение
((rand()+sec())%N
Пример программы 15 Игра на си орел решка Программа имитирует
подбрасывание монетки Орел Решка
Процедуры и функции в Си.
Процедуры в си
В Си можно вводить собственные процедуры. Программа разбивается на
подпрограммы. Использование собственных процедур делает наглядным код
программы. Кроме того процедуры можно вызвать в различных местах программы.
Чтобы задать собственную процедуру в си необходимо указать
void имя процедуры( тип параметра 1 параметр1, тип параметра2 параметр2 …. )
{
//набор команд выполняемых процедурой
}
Процедура в си описывается до основной программы, которая начинается с
ключевого слова main()
Пример процедуры анализа количества правильных ответов и выставления оценки.
void ocenka ( int kol, int pr)
{
float k; // параметр для расчета относительного числа правильных ответов
k=(float)pr/kol;// рассчитываем коэффициент относительного числа правильных
ответов
// анализируем ответ
if ( koef<0.3) {printf("Очень плохо\n");}
if ( (koef>=0.3) && (koef<0.6)) {printf("Удовлетворительно\n");}
if ( (koef>=0.6) && (koef<0.9)) {printf("Хорошо\n");}
if ( (koef>=0.9) && (koef<=1)) {printf("Отлично\n");}
if ( koef>1) {printf("Некорректные данные\n");}
}
Данная процедура использует два параметра kol – общее количество, pr –
количество правильных ответов
Чтобы вызвать процедуру
Необходимо просто написать ее имя и в скобочках указать значения параметров.
Значения параметров можно указать явно
ocenka (5,3);
В этом случае в процедуре параметры будут kol = 5 и pr =3
В процедуру в качестве значений параметров можно поставить значения
переменных.
stat=10;
prav=4;
ocenka (stat,prav);
В этом случае в процедуре параметры будут kol=10 и pr =4
Структура программы
Для наглядности кода в программе используются процедуры. Каждая процедура
выполняет блок команд , который можно по смыслу отделить от остальной программы.
перечисление заголовочных файлов
объявление глобальных переменных
Перечисление функций и процедур
main()
{
Вызов процедур
Вызов команд
}
Глобальные переменные можно вызывать и изменять в любой процедуре.
Локальные переменные объявляются внутри каждой процедуры и могут изменяться
только внутри каждой процедуры, другие процедуры не могут использовать локальные
переменные.
Пример программы 16. Локальные и глобальные переменные. В программе
Для игр и тестов можно использовать следующую структуру программы
Перечисление заголовочных файлов
Объявление глобальных переменных отвечающих за общую статистику теста
Процедура ввода начальных параметров
Процедура стандартного вопроса теста или хода игры
Процедура расчета и вывода статистки игры
main()
{
Вызов процедуры ввода начальных параметров
ans=1;
// выполняем тест пока ответ на продолжение игры ==1
while (ans==1)
{
Вызов процедуры стандартного вопроса теста или хода игры
printf("Хотите продолжить ? 1 -Да. 2 - Нет.\n");
scanf("%d", &ans);
}
Вызов процедуры расчета и вывода статистки игры
}
Следуя такой логике, приведем пример правильно написанной программы
тестирования таблицы квадратов.
Пример программы 17. Программа запрашивает начальное значение, с которого
будет производится тест на знание квадратов, выводит число и запрашивает его квадрат.
Анализирует введенный ответ. Подсчитывает число правильных и неправильных ответов.
После каждого вопроса запрашивает вопрос на продолжение теста. В конце теста выводит
оценку.
Функции – это подпрограммы, которые возвращают определённый результат. При этом
функции могут выполнять набор различных действий.
Чтобы задать собственную функцию, необходимо указать тип возвращаемого
результата, название функции, список параметров, тело функции и ключевое слово
return за которым следует значение возвращаемого результата.
Тип функции Название функции (параметры)
{
Исполняемые операторы
return возвращаемое значение;
}
Используя функции можно задать собственную математическую функцию. Задав ее
один раз, мы можем вызвать ее в любом месте программы просто по имени и аргументу.
Пример программы 18. Программа запрашивает значение аргумента x и возвращает
значение от данного аргумента введенной собственной математической функции parabola
Значение функции можно присвоить переменной, также функцию можно вызвать в
условии.
Функция перед возвратом значения может выполнить различные действия.
Приведем пример функции, которая будет контролировать корректность и
правильность ввода числового значения , будет запрашивать ввод до тех пор пока
введенное число не попадет в заданный диапазон.
Пример программы 19. Программа запрашивает вес и рост человека. В программе
осуществляется проверка корректности ввода информации, введенное значение должно
попадать в указанный диапазон.
Самостоятельная работа
1. Необходимо создать двумерный массив 5 х 5. Далее написать
функцию, которая заполнит его случайными числами от 30 до 60. Создать
еще две функции, которые находят максимальный и минимальный элементы
этого двумерного массива.
2. Объявить два целочисленных массива с разными размерами и
написать функцию, которая заполняет их элементы значениями и показывает
на экран. Функция должна принимать два параметра – массив и его размер.
Массивы в Си.
Когда необходимо хранить и обрабатывать большое количество цифровой
информации о множестве объектов удобно использовать массивы информации.Массив –
это набор однотипных объектов с общим именем, у каждого объекта есть свой
уникальный номер(индекс) с помощью которого можно с ним работать, изменять ,
запрашивать значение.Каждый такой объект называется элементом массива. Номер
элемента массива – это его индекс.
Объявление массива в Си
Чтобы работать с массивом данных в Си его необходимо сначала, так же как и
переменную объявить в начале программы или процедуры.
Нумерация элементов, индексов в Си начинается с 0. Чтобы объявить, массив
нужно
Тип массива Имя массива [количество элементов массива -1];
Например, объявлен массив из 5 целочисленных элементов координат точек x
int x[4];
Типы элементов массива могут быть вещественные float, символьные char
Присвоение значений элементам массива.
Задать первоначальные значения элементам массива можно явно при его
объявлении для этого используются фигурные скобки и в них через запятую
перечисляются значения элементов массива. Число элементов должно совпадать
с размером массива
Например:
int x[4]={10, 20 ,3 , 5, 100};
задаст первоначальные значение x[0]=10 ; x[1]=20; x[2]=3; x[3]=5; x[4]=100;
Можно задать значения присвоением
x[1]=5;
ввести значение элемента массива можно и с клавиатуры
scanf(“%d”, &x[1]); // элемент массива x с индексом 1 будет введен с клавиатуры
Работа с массивами в Си
При работе с массивами удобно использовать цикл for для того чтобы обработать
все элементы массива
Общий формат обработки данных всего массива в Си
for ( int i=0; i<размер массива; i++) // пробегаем по всем элементам массива
{
Имя массива [i]= выражение; // обработка элемента массива с индексом i
}
Пример программы 20. Вводится массив с клавиатуры, значения элементов
массива увеличивается в 2 раза. Получившийся массив выводится на экран.
// работа с массивом
Поиск минимального и максимального элемента массива в Си
При поиске минимального (максимального) элемента в массиве
необходимо “пробежать” по всем элементам массива сравнивая его элементы с текущим
минимумом (максимумом) . Если текущий элемент окажется меньше текущего
минимального значение , то минимальному значению присваивается этот элемент
массива.
Пример программы 21. Поиск минимального и максимального значения массива.
// работа с массивом поиск минимального и максимального значений
Самостоятельная работа
1. Создать массив типа int на 10 элементов и заполнить его случайными
числами от 7 до 14. После заполнения перезаписать все числа, которые
больше десяти: от хранимого значение отнять 10. Например в ячейке
хранится число 12: 12 – 10 = 2. Записать в эту ячейку 2 Записывая новое
значение, используйте составные (комбинированные) операторы.
2. Заполнить массив из 50-ти элементов нечётными числами от 1 до 99.
(используйте операцию остаток от деления, чтобы проверить число на
чётность)
Матрицы в Си
Матрица это набор объектов, которые хранятся в виде таблицы. У каждой
матрицы есть имя, единый тип всех ее объектов.
Обявление матрицы в Си
Также как и переменные матрицу в Си необходимо объявить перед тем как с ней
работать, необходимо указать ее тип, ее имя , количество строк -1 и количество столбцов 1. Нумерация столбцов и строк идет с 0.
Тип матрицы Имя [количество строк-1][количество столбцов-1];
Например:
int A[8][9] ; //объявляет целочисленную матрицу с именем A , у которой 9 строк и
10 столбцов
После объявления матрицы, с ее элементами можно работать. Чтобы обратитсья к
элементу матрицы нужно указать имя матрицы в первых квадратных скобках указать
номер строки, во вторых квадратных скобках указать номер столбца.
Например:
A[0][1]=10; // элементу матрицы с номер строки 0 и столбца 1 присваивается
значение 10
printf(“%d”, A[0][1]);// выводит на экран элемент матрицы с номер строки 0 и
столбца 1
Задание матрицы в Си
Чтобы работать с матрицей в Си, необходимо присвоить начальные значения всех
ее элементов.
Для работы со всеми элементами матрицы используется вложенные циклы for
В главном цикле “пробегаем” по всем строкам, а во вложенном “пробегаем” по
всем столбцам для каждой строки.
// “пробегаемся” по всем строкам. Нумерация строк с 0.
for (i=0; i < количество строк; i++)
{
// вложенный цикл, “пробегаемся” по всем столбцам для Нумерация столбцов с 0.
for (j=0; j < количество столбцов; j++)
{
…Имя матрицы [i][j]…// работаем с элементом матрицы с номером строки i и
номером столбца j
}
}
Пример программы 22. Программа задаёт целочисленную матрицу размером
10 на 10 и заполняет ее случайными числами в диапазоне, который укажет
пользователь и выводит ее на экран.
При выводе матрицы на экран в Си для каждой строки мы совершаем переход на
следующую строку с помощью оператора printf("\n");
Ввод матрицы в Си с помощью клавиатуры
Пример программы 23. Задаётся матрица размера 3 на 3 с помощью
клавиатуры и ищется ее максимальный элемент. Он выводится на экран. При поиске
максимального элемента, мы создаем специальную переменную max и присваиваем ей
значение элемента a[0][0]. Пробегаем по всем элементам матрицы с помощью вложенного
цикла, сравнивая текущий элемент с максимумом, если текущий элемент больше
максимума, то максимуму присваивается значение этого элемента.
Работа с файлами в си ввод и вывод в файл в си
Работа с файлами в си
В этой статье мы узнаем, как считывать данные из файлов и записывать
информацию в файлы в программах си. Файлы в си используются для того, чтобы
сохранять результат работы программы си и использовать его при новом запуске
программы . Например можно сохранять результаты вычислений , статистику игр.
Чтобы работать с файлами в си необходимо подключить библиотеку stdio.h
#include <stdio.h>
Чтобы работать с файлом в си необходимо задать указатель на файл по образцу
FILE *имя указателя на файл;
Например
FILE *fin;
Задает указатель fin на файл
Дальше необходимо открыть файл и привязать его к файловому указателю. Для открытия
файла в си на чтение используется команда
Имя указателя на файл= fopen("путь к файлу", "r");
Например следующая команда
fin = fopen("C:\\Users\\user\\Desktop\\data.txt", "r");
откроет файл data.txt, находящийся на рабочем столе по пути C:\\Users\\user\\Desktop
Чтобы узнать путь к файлу можно выбрать файл мышью нажать на правую кнопку мыши
и выбрать свойства файла. В разделе Расположение будет указан путь к файлу. Обратите
внимание , что в си путь указывается с помощью двух слешей.
После работы с файлом в си , необходимо его закрыть с помощью команды
fclose(имя указателя на файл)
Считывание информации из текстового файла в Си
Чтобы можно было считывать русские символы из файла, необходимо настроить
работу с Кириллицей с помощью команды
setlocale(LC_ALL, "Russian");
При этом необходимо в начале программы подключить #include <iostream>
Оператор fscanf()
Для считывания слова из файла в си используется команда fscanf(). Эта команда
аналогична команде ввода информации с клавиватуры в си scanf() только первый
параметр это указатель на файл
fscanf(указатель на файл,"%формат ввода данных1% форматввода
данных2…",&перменная1,&переменная2…);
Например команда
fscanf(fin,"%d%d%d",&a,&b,&c);
считает из файла, который привязан к указателю на файл fin строку из трех
целочисленных переменных
Разберем пример программы, которая считывает из текстового файла data.txt в которые
записаны три столбца цифр информацию и записывает ее в массивы. Для каждого столбца
информации свой массив. Подробно о работе с массивами в Си.
Построковое считывание информации из файла в СИ.Функция fgets ( )
Оператор fscanf() считывает из файла слово , т.е. до первого встречного пробела.
Чтобы считать из файла всю строку из файла в Си используется конструкция
if ( NULL != fgets (строковая переменная, длина строки, указатель на файл ) )
{
действия при считывании строки
}
Пример программы 24 на Си которая считывает две строки из файла и выводит их
на экран
Запись информации в текстовый файл в Си
Для записи данных в файл в Си, необходимо открыть файл в режиме записи
Имя указателя на файл= fopen("путь к файлу", "w");
Для записи в строку текстового файла используется команда fprnitf(), которая аналогична
команде printf() вывод на экран в си только первый параметр это указатель на файл
fprintf (имя указателя на файл,”%формат ввода”, переменные);
Например запись в файл out.txt значение переменной а
a=10;
fout = fopen("C:\\Users\\user\\Desktop\\out.txt", "w");
fprintf (fout,”%d”, a);
Пример программы 25 на си которая запрашивает два числа и записывает в файл
out.txt оба эти числа и их сумму
Ошибки в программах си
Ошибки в программах си
В этой статье мы разберем основные синтактические ошибки в программах си,
научимся искать их в программе и исправлять. Наиболее частые ошибки в программах
c++ си
Пропустили после оператора знак точка с запятой;
Забыли объявить переменную
Неправильно указали имя оператора
Забыли поставить открывающую или закрывающую фигурную скобку { или } в условных
или циклических операторах или в процедурах
Ошибка в программе си Пропустили после оператора знак точка с запятой;
На примере простейшей программы на си разберем эту ошибку
#include <stdio.h>
#include <conio.h>
main()
{
printf("Hello world!") //забыли точку с запятой
getch(); // ждем нажатия любой кнопки
}
При запуске программы в нижнем окне мы увидим сообщение об ошибке в программе си
expected `;' before "getch" Т.е. если видим фразу expected `;' значит мы пропустили ;
Красным цветом будет выделено место ошибки.
Компилятор нам указывает пропущено ; до getch
Ищем в программе это место и ставим ; после оператора си
printf("Hello world!");
Ошибка в программе си забыли объявить переменную
На примере программы на си сложения двух чисел разберем эту ошибку
#include <stdio.h>
#include <conio.h>
main()
{
int b;// забыли объявить переменную a
int c;
a=10;
b=20;
c=a+b;
printf("%d+%d= %d", a,b,c);
getch();
}
При запуске программы окно ошибок выдаст
`a' undeclared (first use this function)
Т.е. если мы видим фразу undeclared, значит мы пропустили объявление переменной.
Мы должны подняться наверх программы или функции, где используется
переменная и объявить переменную.
int a;
Ошибка в программе си Неправильно указали имя оператора
На примере простейшей программы на си разберем эту ошибку
#include <stdio.h>
#include <conio.h>
main()
{
pritf("Hello world!"); //неправильно указан оператор printf
getch(); // ждем нажатия любой кнопки
}
При запуске этой программы компилятор выдаст
`pritf' undeclared (first use this function)
И красным цветом выделит в программе си место ошибки
Если мы видим `слово' undeclared, то значит либо мы неправильно написали оператор,
либо используем не объявленную переменную. Мы должны перейти на красную строку в
программе си, где ошибка и исправить оператор на правильный
printf("Hello world!");
Ошибка в программе си Забыли поставить открывающую или закрывающую
фигурную скобку { или }
На примере программы на си поиска максимального из трех чисел разберем эту ошибку
#include <stdio.h>
#include <conio.h>
main()
{
float a,b,c, max;
printf("введите первое число ");
scanf("%f", &a);
printf("введите второе число ");
scanf("%f", &b);
printf("введите третье число ");
scanf("%f", &c);
max=a;
if (b>max)
{
max=b; // забыли поставить закрывающую скобку
if (c>max)
{
max=c;
}
printf("максимальное число %f", max);
getch();
}
При запуске этой программы на си, компилятор выдаст ошибку
expected `}' at end of input.
Если мы видим эту фразу, то ищем все условия и циклы и смотрим, чтобы каждой
открывающей скобке соответствовала закрывающая фигурная скобка
Download