Типы данных, основные операции языка С, 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типы данных, основные операции языка С,



Структура простой программы на языке С. Функции ввода/вывода.

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

 

Теоретические сведения

Элементы программы

Составными элементами программы являются лексемы, которые в свою очередь, состоят из символов, относящихся к базовому словарю, распознаваемому компилятором. Множество используемых символов включает в себя следующие:

строчные символы - a-z, прописные символы - A-Z, цифры - 0-9 и

символы +, =, -, _, (,), *,;, %, #, &,!, ”, ’, \, [, ], {, }, ~, ^.

Различают пять разновидностей лексем: ключевые слова, идентификаторы, константы, операторы и пунктуация.

Ключевые слова строго зарезервированы и имеют фиксированный смысл. Они используются для объявления типов (такие как int, char, float и др.), для синтаксических операторов (такие как do, for, if и др.) и другие.

Идентификатор (или имя переменной, функции и др.) – это последовательность букв, цифр и подчеркиваний. Идентификатор не может начинаться с цифры. Прописные и строчные буквы обрабатываются как различные символы.

Литералы – это постоянные значения, такие как 1 или 3.14519. Все встроенные типы данных С имеют такие литералы, как символы, целые числа, числа с плавающей точкой и указатели. Допускаются также строковые константы. Например:

5 – целочисленная константа;

5u – u или U определяет unsigned;

5l - l или L определяет long;

05 – восьмеричная;

0x5 – шестнадцатеричная;

5.0 – с плавающей точкой;

‘5’ – символьная константа;

“5” – строковая константа, состоящая из ‘5’ и ‘\0’.

 

Операторы и знаки пунктуации

Большому количеству символов и символьных последовательностей в С придается особое значение, например:

+, -, *, /, % - арифметические операторы;

&&,!, || - логические операторы;

=, +=, *= - операторы присвоения.

Операторы используются в выражениях. Они имеют фиксированный приоритет. Знаки препинания включают круглые скобки, фигурные скобки, запятую и двоеточие.

 

 

Простые типы

В С имеются следующие простые встроенные типы: double, int и char. Простые типы в С могут быть модифицированы с помощью ключевых слов short, long, signed, unsigned.

Простые типы данных

 

char signed char unsigned char

short int long

unsigned short unsigned unsigned long

float double long double

 

Диапазоны целочисленных значений, представленных в вашей системе, определены в стандартном файле limits.h. Диапазон значений чисел с плавающей запятой находятся в стандартном файле float.h.

 

Инициализация

Объявление переменной связывает тип с ее именем. Большинство объявлений переменной являются так же определениями. Определение переменной распределяет под нее память. Переменная может быть проинициализирована следующим образом:

double radius = 5.5; // объявлено, определено и инициализировано

double a; // объявлено и определено, но не проинициализировано

Инициализация может включать произвольное выражение при условии, что все переменные и функции, используемые в выражении, определены. Нельзя ссылаться на неинициализированную переменную. С позволяет многократное присвоение в одном операторе.

y=z=3.5; // эквивалентно z=3.5; y=3.5;

a=b+(c=3); // эквивалентно с=3; a=b+c;

a+=b; // a=a+b;

a*=a+b; // a=a*(a+b);

 

С поддерживает операторы инкрементации ++ и декрементации -- в префиксной и постфиксной формах.

++i; // префиксная форма записи

--i;

i++; // постфиксная форма записи

i--;

 

Преобразование типов

 

Если выражение имеет смешанный тип операндов, то согласно иерархии типов

int < unsigned < long < unsigned long < float < double

преобразуется к значению, совместимому с левосторонней переменной.

 

Функции ввода/вывода

Функция scanf

Функция scanf выполняет форматированный ввод данных из входного потока. В общем виде формат функции scanf следующий:

scanf(“формат ввода переменных”,адреса переменных, которым присваиваются значения);

Типы некоторых форматов вводимых переменных следующие:

%d - целое десятичное число;

%c - отдельный символ;

%s - символьная строка;

%f - число с плавающей запятой в записи с фиксированной десятичной точкой;

%e - значение со знаком в формате;

%p - значение указателя, т.е. адрес.

Функция scanf возвращает число правильно считанных полей.

Пример: ввод числа.

void main()

{

int a,b;

int n;

printf(“\nВведите два целых числа a и b\n”);

n=scanf(%d%d”,&a,&b);

if(n!=2)

{

printf(“\nДанные введены неверно\n”);

return;

}

}

Функция gets считывает символьную строку из стандартного входного потока и размещает ее по адресу, заданному указателем. Прототип функции

char * gets(char *str); Чтение строки заканчивается, когда функция встречает символ ‘\n’. Данный символ заменяется ‘\0’.

Функция getchar считывает символ из стандартного входного потока. Прототип функции: int getchar(void);

Функция printf выводит форматированные данные в поток. Общий формат функции printf можно записать в следующем виде

printf(“форматы вывода данных”,имена переменных, значения которых необходимо вывести);

Форматы вывода данных используются такие же, как и для функции scanf.

Пример использования функции scanf и printf.

void main()

{

int a,b,c;

printf(“\nВведите два целых числа\n”);

c=scanf(“%d%d”,&a,&b);

if(c!=2)

{

printf(“Данные введены неверно\n”);

return;

}

printf(“Значение а=%3d, b=%3d\n”,a,b);

}

 

Операторы if и if_else

Обобщенная форма оператора if имеет вид

if(выражение)

оператор

если значение “выражение” отлично от нуля (true), то оператор выполняется, если равно нулю – оператор пропускается. Выражение в операторе if – это сравнение, равенство или логическое выражение.

Оператор if_else имеет форму:

if(выражение)

оператор1

else

оператор2

если выражение отлично от нуля, то выполняется оператор1, а оператор2 пропускается, если выражение равно нулю, то пропускается оператор1 и выполняется оператор2.

if(x<y)

min=x;

else

min=y;

printf(“\nmin=%3d”, min);

Структура простой программы

Любая программа на языке С состоит из одной или более функций. Функциям можно давать любые имена, но среди них есть одна головная функция, имя которой main. Выполнение программы всегда начинается с этой функции. Для выполнения определенных действий функция main() обычно обращается к другим функциям, часть из которых находится в той же самой программе, а часть – в библиотеках, содержащих ранее написанные функции.

Приведем структуру программы на языке С, в которой функция main() обращается к другой функции – prog(), которой не передаются параметры и она ничего не возвращает.

#include<stdio.h>

void main(void) // тело функции main

{

void prog(void); // прототип функции prog

int a=10; // определение данных

int b=13;

int c;

c=a*b; // вычисления

printf(“\n a+b=%4d”,c); // вывод результата

prog(); // вызов функции prog на выполнение

}

void prog(void) // тело функции prog

{

printf(“\n Выполняется функция prog”);

}

Исходная программа состоит из следующих объектов: директив, указаний компилятору, объявлений и определений. Директивы задают действия препроцессора по преобразованию текста программы перед компиляцией. Указания компилятору – это команды, выполняемые компилятором во время компиляции. Объявления задают имена и атрибуты переменных, функций и типов, используемых в программе. Определения – это объявления, определяющие переменные и функции. Определение переменной в дополнение к ее имени и типу задает начальное значение объявленной переменной.

 

Порядок выполнения работы

1. Изучить краткие теоретические сведения.

2. Составить блок-схему алгоритма.

3. По разработанной блок-схеме алгоритма написать программу.

4. Отладить и выполнить программу.

 

Варианты заданий

1. Даны натуральные числа n, p, целые числа a1,…,an. Получить

произведение членов последовательности a1,…,an кратных p.

2. Даны действительные числа a, b, c. Удвоить эти числа, если , и заменить их абсолютными значениями, если это не так.

3. Даны натуральное число n, целые числа a1,…,an. Найти количество и сумму тех членов данной последовательности, которые делятся на 5 и не делятся на 7.

4. Вычислить значение переменной t при следующем условии: при выполнении условия x-y < 0, то , в противном случае, если , то вычислить значение переменной t по формуле , в противном случае .

.

5. Вычислить значение переменной

,

,

.

.

6. Даны действительные числа a, b, c. Удвоить эти числа, если a >= b >= c, и заменить их абсолютными значениями, если это не так.

7. Вычислить функцию

 

8. Вычислить функцию

9. Вычислить значение функции

Значение x ввести.

10. Вычислить значение функции

11. Вычислить значение

 

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



Поделиться:


Последнее изменение этой страницы: 2016-08-10; просмотров: 478; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.93.207 (0.028 с.)