Типы переменных. Функции ввода/вывода.

Рассмотрим пример программы, содержащей различные типы переменных.

Пример 1.

#pragma hdrstop

#include<stdio.h>

#include<conio.h>

//---------------------------------------------------------------------------

 

#pragma argsused

int main(int argc, char* argv[])

{

char slash='/';

short day=15;

short month=9;

int year=2012;

//char* name="Yulia";

/*char name[80]="Yulia";*/

char name[]="Yulia";

int myAge=19;

float myWeightInKg=57.2;

long myAgeInDays=7277;

printf("Anketa\n\n");

printf("Date=%2d%c%2d%c%d\n",day,slash,month,slash,year);

//printf("Date=%2d\/%2d\/%d\n",day,month,year);//

printf("Name=%s\n",name);

printf( "My age =%d\n", myAge);

printf( "My weight in kilograms=%.1f\n", myWeightInKg);

printf( "My age in days=%d\n", myAgeInDays);

getch();

return 0;

}

 

Перед тем как использовать переменные, программа должна объявить их. Первой мы объявляем переменную символьного типа char с идентификатором (именем) slash . Символьный тип char предназначен для работы с символами и строками. Переменные этого типа занимают в памяти компьютера один байт, в котором хранится номер (код) символа в стандартной для всех моделей PC таблице символов ASCII. Таким образом, в памяти компьютера все символы хранятся как числа. Инициализируем, т.е. присваиваем ей значение, нашу переменную slash символом /, при этом символ берется в апострофы. Последовательность символов образует строку. Строка в С хранится как последовательность значений типа char, которые заканчиваются нулевым символом (нулевым кодом) ‘\0’. Нулевой символ позволяет функциям, работающим со строками, обнаружить конец строки . В нашей программе переменная name – имя массива, в котором хранится строка Yulia.

Рассмотрим оператор printf на примере:

printf( "My age =%d\n", myAge);

Внутри строки находится спецификатор %d, специальная команда, которая «объясняет» функции printf(), где и в каком месте должна появиться переменная myAge. Функция printf() заменяет спецификатор, значением переменной, записанной после строки, заключенной в кавычки. Символ, стоящий после знака процента, указывает, какого типа должна быть выведена переменная. В нашем случае – это d, значит, вывести нужно целую переменную. В нашей программе функция printf() использует также спецификаторы %c, %f для отображения переменных типа char и float соответственно. После спецификатора в функции стоит управляющий символ \n, который обозначает переход на новую строку. Функция printf() дает возможность задать точность представления, с которой будут напечатаны данные. Для этого поместите между знаком процента и спецификатором преобразования десятичную точку с последующим числом: “%.1f”. Переменная myWeightInKg будет напечатана с одним десятичным знаком после точки. Функция позволяет также задать размер (ширину) поля, в которой печатаются данные. Целое число, задающее ширину поля, может быть вставлено между знаком процента и спецификатором преобразования: “%2d”.

В нашей программе мы использовали комментарии. Цель комментариев – пояснить содержание программы, компилятор их полностью игнорирует. Если мы используем блок комментариев, то заключаем его в двухсимвольные ограничители /* и */. Для однострочных комментариев мы можем использовать два символа //, такой комментарий действует от начала этих символов до конца строки. В нашей программе, например, мы закомментировали два способа объявления и инициализации переменной name.

Пример 2.

#pragma hdrstop

 

//---------------------------------------------------------------------------

 

#pragma argsused

#include <stdio.h>

#include <conio.h>

int main()

{

float a,b,c;

 

printf("Adding two numbers\n\n");

printf("Enter first summand\n");

scanf("%f",&a);

printf("Enter second summand\n");

scanf("%f",&b);

c=a+b;

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

getch();

 

return 0;

}

В этой программе мы использовали функцию scanf(), которая отвечает за ввод данных в программе с клавиатуры. Функция содержит один или несколько спецификаторов, заключенных в кавычки (строка формата). За строкой формата, через запятую следует адрес переменной, предназначенный для приема данных. Например:

scanf("%f",&a);

Выражение &a передает адрес переменной a функции scanf().

 

 

Пример 3.

#pragma argsused

#include <stdio.h>

#include <conio.h>

int main(int argc, char* argv[])

{

char slash = '/';

short chislo = 1;

short month = 9;

int year =2010;

long population = 10000000L;

float pi = 3.14159;

double velosity =299791336.2;

long double lightYear = 9.5e15;

 

printf("Date = %02d%c%02d%c%d\n",chislo,slash, month, slash, year);

printf("Population of the Belarus = %ld\n",population);

printf("Pi = %f\n",pi);

printf("Velocity of light = %13.2lf meter/sec\n",velosity);

printf("One light year = %.0Lf meter\n",lightYear);

getch();

return 0;

}

 

Задание.

1. Написать программу1, выводящую на экран ваши анкетные данные (аналогично примеру1). При выводе вашего веса изменять число знаков после запятой (после спецификатора не указывать количество знаков, указать 2 знака). Изменить при объявлении переменной «вес» и при ее выводе тип float на int. Результаты изменений отразить в отчете. В качестве примера может быть использован также пример 3.

2. Написать программу 2, реализующую арифметические операции для трех чисел согласно варианту (аналогично примеру 2). Значения переменных вводятся с клавиатуры.

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

4. * Написать программу, вычисляющую площадь круга. Значение радиуса вводим с клавиатуры, r2 определять как r*r.

 

Арифметическое выражение
1. d=a+b-c
2. d=a*b-c
3. d=a-b-c
4. d=(a+b)*c
5. d=(a-b)*c
6. d=a*b+c
7. d=a+b*c
8. d=2a+3b+4c
9. d=5a*b-3c
10. d=6a-2b+3c
11. d= (2a+6b)*c
12. d=4a+3c*b
13. d=2a+b-c