Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на ЯВУ. Мет.ук. к лаб. работам...doc
Скачиваний:
14
Добавлен:
22.08.2019
Размер:
126.98 Кб
Скачать

Пример программы

#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

Контрольные вопросы

  1. Перечислите простые типы данных языка Си.

  2. Каков диапазон значений переменных простых типов?

  3. Что такое константа?

  4. Какие операции применимы к простым типам?

  5. Как выполняются стандартные функции ввода-вывода?

  6. Использование директивы препроцессора #include.

  7. Как работает условный оператор if?

  8. Как работает оператор выбора switch?

  9. Как работают побитовые операции?

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

Решение задач с использованием циклических алгоритмов. Обработка числовых и символьных массивов Методические указания

В соответствии с полученным вариантом задания следует:

  1. Составить блок-схему решения задачи.

  2. Написать программу по разработанному алгоритму. При этом следует выполнить следующие требования:

- максимальный размер массива, с которым может работать данная программа, следует задавать с помощью директивы препроцессора #define, а фактический размер массива пользователь вводит в переменные в процессе работы программы;

- ввод массива осуществляется с клавиатуры пользователем или читается из заранее подготовленного файла исходных данных. При этом массив вводится в виде матрицы. Недопустимо вводить двухмерный массив в одну строку или по одному элементу в каждой строке;

- после ввода массива следует предусмотреть его вывод для контроля за правильностью ввода данных;

- для повышения эффективности программы текстовые массивы следует читать и записывать строками, используя функции gets и puts;

- отдельные блоки обработки массивов можно оформлять в виде функций;

- вывод результатов работы программы следует сопровождать текстовыми пояснениями.

  1. Протестировать программу, получив результаты ее работы для разных вариантов входных данных. Убедиться в правильности работы программы.

При работе с текстовой матрицей можно использовать функции работы со строками, такие как strlen, strcpy, strcmp.