Лабораторная работа - Структура программы, ввод/вывод. Вариант 13 - файл n1.doc

Лабораторная работа - Структура программы, ввод/вывод. Вариант 13
скачать (63.5 kb.)
Доступные файлы (1):
n1.doc64kb.29.05.2012 21:16скачать

n1.doc

Балтийский государственный технический университет

«Военмех» им. Д.Ф. Устинова

Кафедра И3

«Информационные системы и компьютерные технологии»

Лабораторная работа1

«Структура программы, ввод/вывод»

Вариант

Выполнил:

Студент Тихонов А.Ю.

Группа И383
Преподаватель:

Снижко Е.А.


Санкт-Петербург

2008

Лабораторная работа № 1

Цель работыИзучить структуру программы, научится использовать переменные различных типов, освоить функции форматного ввода и вывода, арифметические операции и операции присваивания.

Постановка задачи

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

Написать программу для вычисления следующих выражений:

a=5 , c=5

a=a+b-2

c=c+1, d=c-a+d

a=a*c, c=c-1

a=a/10, c=c/2, b=b-1, d=d*(c+b+a)
Выражения, записанные в одной строке, записывать одним оператором-выражением. Переменные c и d объявить как целые, переменные a и b – как вещественные. Значения переменных b и d вводить с клавиатуры. После вычисления каждого выражения выводить на экран значения всех переменных.
Листинг
#include <stdio.h>

подключение библиотеки stdio.h для работы с некоторыми функциями

int main (void)

структура программы, заголовок функции main

{

тело функции main

int a,b =5,c;

присвоение типа переменных (в данном случае int-целые), задание для переменной b начального значения равного 5

float x,y=-.5,z;

присвоение типа переменных (в данном случае float-вещественные с плавающей точкой), задание для переменной y начального значения равного -0.5

printf(a=);

вывод на экран строки “a=” c просьбой установить значение переменной a (зададим значение равное 1)

scanf(%d,&a);

ввод данных в ячейку памяти по адресу a

x=c=a;

присвоение переменным x и c значения переменной a

printf(a=%d, c=%d, x=%f\n,a,c,x);

вывод на экран значений ячеек памяти a, c и x (в данном случае это будет выглядеть так «a=1 c=1 x=1»)
a+=b;

присвоение переменной a значения равного a+b (1+5)

printf(“a=%d\n”,a);

вывод на экран значения переменной a (в данном случае это будет выглядеть так «a=6»)

и перевод на следующую строчку

x+=b+a;

присвоение переменной x значения равного x+b+a (1+6+5)

printf(“x=%f\n”,x);

вывод на экран значения переменной x(в данном случае это будет выглядеть так «x=12»)

и перевод на следующую строчку

b+=a--;

присвоение переменной a значения равного b+(a-1) (5+(6-1))

printf(“b=%d\n”,b);

вывод на экран значения переменной b(в данном случае это будет выглядеть так «b=10»)

и перевод на следующую строчку

x-=++c;

присвоение переменной x значения равного x-(c+1) (12-(1+1))

printf(“x=%f\n”,x);

вывод на экран значения переменной x(в данном случае это будет выглядеть так «x=10»)

и перевод на следующую строчку

c=a/b;

присвоение переменной c значения равного a/b (6/11)

printf(“c=%4d\n”,c);

вывод на экран значения переменной cвыводится только 4тый символ числа (в данном случае это будет выглядеть так «c= 0»)

и перевод на следующую строчку

c=a%b;

присвоение переменной c значения равного a%b (6%10) остаток от целочисленного деления

printf(“c=%d\n”,c);

вывод на экран значения переменной c (в данном случае это будет выглядеть так «с=5»)

и перевод на следующую строчку

x=5.3;

присвоение переменной x значения равного 5.3

y+=((--x-1)/x++);

присвоение переменной y значения равного

действия:

  1. (--x-1) скобки равны 3.3 значение х = 4.3

  2. (--х-1)/(х++) скобки равны 0.77 значение х=5.3

  3. y+(--х-1)/(х++) скобки равны 0.27 значение x=5.3

printf(“x=%f\ty=%.2f\n\n x=%.0f\ty=%.0f\n”,x-1,y,x,y-1);

вывод на экран значения переменных x и y с применение табуляции

.2 –вывод всего двух знаков после запятой

.0- не выводит ни единого знака после запятой, округляет

в данном случае это будет выглядеть так: x=4.300000 y=0.27

x=5 y=-1
z=a/2;

присвоение переменной z значения равного a/2 (5/2)

деление (а – целое , z –вещественное)

printf(“ z=%f\n”,z);

вывод на экран значения переменной z (в данном случае это будет выглядеть так «z=2.000000») и перевод на следующую строчку

z=(float) a/2;

переменной z значения равного a/2 (5/2)

деление с плавающей точкой (а – целое , z –вещественное)

printf(“ z=%f\n”,z);

вывод на экран значения переменной z (в данном случае это будет выглядеть так «z=2.500000») и перевод на следующую строчку

y=x/2;

присвоение переменной y значения равного x/2 (5.3/2)

деление (x и y – вещественное)

printf(y=%f\n,y);

вывод на экран значения переменной z (в данном случае это будет выглядеть так «z=2.650000») и перевод на следующую строчку

y=(int)x/2;

присвоение переменной y значения равного x/2 (5.3/2)

целочисленное деление ()

printf(y=%f\n,y);

вывод на экран значения переменной z (в данном случае это будет выглядеть так «z=2.000000») и перевод на следующую строчку

z=a%2-(x+b)/c + (x-y)/(a-1) + ¼* a(y++)+(++b)/3.;

присвоение переменной z значения равного

действия:

  1. a%2 – значение равно 1

  2. (++b)/3 –значение равно 4 (++b) - Используется в выражении (1+b) b=12

  3. (x+b)/c – значение равно 3.46

  4. (x-y)/(a-1) – значение равно 0.825

  5. ¼ *a – значение равно 1.25

  6. (y++) –значение равно 2, но y=3

  7. a%2-(x+b)/c + (x-y)/(a-1) + ¼* a – (y++)+(++b)/3 – значение равно 1.615

printf(“a=%d b=%d c=%d x=%f y=%f z=%f\n”,a,b,c,x,y,z);

вывод на экран значений всех переменных (в данном случае это будет выглядеть так

a=5 b=12 c=5 x=5.30000 y=3.000000 z=1.615000)

return 0;

конец программы

}

Код программы
#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int main()

{

int c=0,d=0;

float a=0,b=0;

clrscr();

printf("b=");

scanf("%f",&b);

printf("d=");

scanf("%d",&d);

a=c=5;

printf("a=%f c=%d\n",a,c);

a+=b-2;

printf("a=%.2f\n",a);

d+=(++c)-a;

printf("d=%d c=%d\n",d,c);

a*=c--;

printf("a=%.2f c=%d\n",a,c);

d*=(c/=2)+(--b)+(a/=10);

printf("a=%.2f b=%.2f c=%d d=%d\n",a,b,c,d);

getch();
}
Тестирование


N

Делители

Должно быть

Получено

b=2

d=2

a=2.40

b=1.00

c=2

d=18

a=2.40

b=1.00

c=2

d=18

b=30

d=30

a=19.80

b=29.00

c=2

d=152

a=19.80

b=29.00

c=2

d=152



Вывод: программа работает правильно.

Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации