- •Кафедра ”Информационных систем управления”
- •Основные типы данных, операции и выражения, форматный ввод-вывод данных. Линейные и разветвляющиеся алгоритмы Методические указания
- •Пример программы
- •Контрольные вопросы
- •Решение задач с использованием циклических алгоритмов. Обработка числовых и символьных массивов Методические указания
- •Примеры программ
- •Контрольные вопросы
- •Работа с файлами. Использование процедур и функций Методические указания
- •Пример задания
- •Контрольные вопросы
- •Динамическое управление памятью. Методические указания
- •Примеры программ
- •Контрольные вопросы
Пример программы
#include <stdio.h> // функции ввода-вывода для стандартных файлов
#include <conio.h> // функции для работы с терминалом в текстовом режиме
void main()
{
char str1[]={" Введены числа:"},str2[]={" Числа упорядочены"};
int k,n,m;
float x,y,z;
char ch1,ch2,ch3;
unsigned b1,b2,b3;
clrscr();
printf("Введите 3 целых числа: ");
scanf("%d%d%d",&k,&n,&m);
printf("\n%sk=%d,n=%5d,m=%5d\n",str1,k,n,m);
printf("Введите 3 вещественных числа: ");
scanf("%f%f%f%*c",&x,&y,&z);
printf("\n%sx=%10.2f,y=%10.2f,z=%10.2f\n",str1,x,y,z);
b1=(x<y)&&(y<z);
b2=(x>y)&&(y>z);
b3=(x==y)&&(y==z);
if (b1) printf("%s по возрастанию\n",str2);
else if (b2) printf("%s по убыванию\n",str2);
else if (b3) printf(" Числа равны\n");
else printf(" Числа не упорядочены\n");
printf("Введите 3 символа:");
scanf("%c%c%c",&ch1,&ch2,&ch3);
printf("Введены символы: ");
printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);
printf("Значения выражений равны: \n");
printf("%15s%15s%15s%20s\n","n/k","m%n","k==n","(n<k)&&(k<m)");
printf("%15d%15d%15d%20d\n",n/k,m%n,k==n,(n<k)&&(k<m));
printf("\n");
printf("%15s%15s%15s%20s\n","~m","n&k","n<<k","ch1<ch3");
printf("%15d%15d%15d%20d\n",~m,n&k,n<<k,ch1<ch3);
while(!kbhit());
}
Результаты работы программы:
Введите 3 целых числа: 5 20 65
Введены числа:k=5,n= 20,m= 65
Введите 3 вещественных числа: 123 1e5 10.50
Введены числа:x= 123.00,y= 100000.00,z= 10.50
Числа не упорядочены
Введите 3 символа:a+b
Введены символы: ch1=a,ch2=+,ch3=b
Значения выражений равны:
n/k m%n k==n (n<k)&&(k<m)
4 5 0 0
~m n&k n<<k ch1<ch3
-66 4 640 1
Контрольные вопросы
Перечислите простые типы данных языка Си.
Каков диапазон значений переменных простых типов?
Что такое константа?
Какие операции применимы к простым типам?
Как выполняются стандартные функции ввода-вывода?
Использование директивы препроцессора #include.
Как работает условный оператор if?
Как работает оператор выбора switch?
Как работают побитовые операции?
int x,y,z;
float a,b,c;
char ch1,ch2,ch3;
unsigned int c1,c2,c3;
char str1[]={"Vi vveli: "};
printf("Vvedite 3 veshestvennyh chisla");
scanf("\n%f%f%f\n",&a,&b,&c);
printf("%s1oe=%f,2oe=%f,3e=%f",str1,a,b,c);
ЛАБОРАТОРНАЯ РАБОТА №2
Решение задач с использованием циклических алгоритмов. Обработка числовых и символьных массивов Методические указания
В соответствии с полученным вариантом задания следует:
Составить блок-схему решения задачи.
Написать программу по разработанному алгоритму. При этом следует выполнить следующие требования:
- максимальный размер массива, с которым может работать данная программа, следует задавать с помощью директивы препроцессора #define, а фактический размер массива пользователь вводит в переменные в процессе работы программы;
- ввод массива осуществляется с клавиатуры пользователем или читается из заранее подготовленного файла исходных данных. При этом массив вводится в виде матрицы. Недопустимо вводить двухмерный массив в одну строку или по одному элементу в каждой строке;
- после ввода массива следует предусмотреть его вывод для контроля за правильностью ввода данных;
- для повышения эффективности программы текстовые массивы следует читать и записывать строками, используя функции gets и puts;
- отдельные блоки обработки массивов можно оформлять в виде функций;
- вывод результатов работы программы следует сопровождать текстовыми пояснениями.
Протестировать программу, получив результаты ее работы для разных вариантов входных данных. Убедиться в правильности работы программы.
При работе с текстовой матрицей можно использовать функции работы со строками, такие как strlen, strcpy, strcmp.