Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
14.11.2017
Размер:
350.68 Кб
Скачать

Форматный вывод (продолжение)

 

 

 

 

 

Типы числовых данных

длина чисел в байтах

char, unsigned char, signed char

1

short, unsigned short

2

int, unsigned int

4

long, unsigned long

4

long long, unsigned long long

8

Float

4

double

8

long double

8

Форматы чисел не стандартизованы в С, поэтому приведенные значения являются типовыми, но не обязательными. Типовые величины числовых диапазонов в среде Pellec C for Windows приведены на следующем слайде

11

Технология и языки программирования

Форматный вывод (продолжение)

Тип данных

Байты

Биты

Min

Max

signed char

1

8

-128

127

unsigned char

1

8

0

255

signed short

2

16

-32768

32767

enum

2

16

-32768

32767

unsigned short

2

16

0

65535

signed int

4

32

-2147483648

2147483647

unsigned int

4

32

0

4294967295

signed long

4

32

-2147483648

2147483647

unsigned long

4

32

0

4294967295

float

4

32

±3.4E-38

±3.4E+38

double

8

64

±1.7E-308

±1.7E+308

long double

8

64

±1.7E-308

±1.7E+308

12

Технология и языки программирования

Вывод символов

Вывод символов таблицы ASCII, которые имеют значок для отображения на экране. Примеры:

putchar('A'); // вывод заглавной латинской А putchar() – функция неформатного вывода символа

printf("B"); // вывод строчной константы из одной буквы.

Выводятся символьная переменная qq и строка из одного символа QQ (заглавные и строчные буквы различаются!)

char qq = ’W’; char QQ[] = ”?”; printf ("%c", qq); printf(”%s”,QQ);

13

Технология и языки программирования

Вывод символов (продолжение)

Управляющие коды

Для управления выводом и в качестве специальных знаков используются символы таблицы ASCII с номерами от 0 до 26, которые или вовсе не отображаются на экране или имеют строго заданных значков для вывода на экран. В тексте программ они обозначаются обычными символами, перед которыми ставится знак \. Примеры управляющих кодов:

\n переход на новую строку

\t горизонтальная табуляция (сдвиг вправо на несколько позиций, обычно на 8, завит от конкретной реализации)

\b возврат на одну позицию (backspace)

\r возврат в начало строки

14

Технология и языки программирования

Вывод символов (продолжение)

Таким же образом записываются специальные знаки:

printf("\\"); //вывод символа \ на экран

printf("\""); //вывод символа " на экран

putchar(’ \7’); // вывод символа BEL, который вызывает звуковой сигнал – писк, звонок (если в компьютере есть встроенная звуковая головка). В данном случае 7 – восьмеричный код символа BEL в таблице ASCII

putchar(’\64’); // вывод на экран символа числа 4, поскольку 648 =4810, а 48 это код ’4’ в таблице ASCII

эквивалентная команда - putchar(’4’)

putchar(’\x41’) это эквивалентно putchar(’A’) или то же, что printf(”A”). Здесь x41 шестнадцатеричный код 41, т.е. 65 в десятичном коде (4116 = 6510), а 65 это код латинской А в таблице ASCII

15

Технология и языки программирования

Задержка закрытия экрана

При выводе результатов на экран нужно осуществить

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

Для этого используется операция ожидания ввода любого символа, например:

printf(”Press any key to continue…”);

// т.е. «Для продолжения нажмите любую клавишу»

getchar(); // функция неформатного ввода символа - ожидает ввода какого-либо символа

В среде Pelles C предусмотрена автоматическая

вставка такого кода в конце главной программы перед return 0.

16

Технология и языки программирования

Задержка закрытия экрана

(продолжение)

Еще один способ сделать паузу, чтобы задержать текущее изображение на экране – использовать функцию system() из библиотеки stdlib.h:

#include <stdio.h> #include <stdlib.h>

int main(void)

{

//здесь текст главной программы system("Pause");

return 0;

}

Если ОС русифицирована, то появится надпись: «Для продолжения нажмите любую клавишу. . .»

17

Технология и языки программирования

Строки в языке С

Любой текст в кавычках, например:

”МИФИ”, ”MEPhI”, ”1234” является строковой константой.

Строка – это массив символов, который содержит в конце нулевой символ, признак конца строки ’\0’. Объявление такого массива:

char S1[] = ”Bye-Bye”; // массив содержит 7 символов и признак конца, поэтому справедливо также такое объявление:

char S1[8] = ”Bye-Bye”; // или такое:

char S1[20] = ”Bye-Bye”; // часть области памяти, отведенной под массив, будет заполнена, часть нет – ее содержимое не определено.

А так нельзя:

char S1[7] = ”Bye-Bye”; // будет сообщение об ошибке

«No room for null terminator...» (нет места для конца строки)

18

Технология и языки программирования

Строки в языке С (продолжение)

Символы в строке нумеруются, как и в любом другом

массиве, начиная с нуля, например, при выполнении фрагмента программы:

char s2[]=”Hi”;

Printf(”%c\t%c\t%c\t”, s2[0], s2[1], s2[2]);

будет выведено

H

i

Press any key to continue...

Символ конца строки между i и Press не виден

Важно: значения элементов массива изменять можно: s2[0]=’Q’; s2[1]=’*’; s2[0]=s2[1];

но значение s2 изменять нельзя, поскольку это адрес 0-го элемента массива, то есть, указатель-константа на строку. Поэтому s2 = запрещено!

19

Технология и языки программирования

Строки в языке С (продолжение)

Другой способ объявления строки: char *s3=”Microelectronics”;

Здесь * - операция получения значения переменной по ее адресу, s3 – переменная-указатель на символьную переменную. Это адрес байта - нулевого элемента массива, т.е. адрес самого массива.

*s3 – это не адрес, а содержимое памяти – строка, на которую указывает переменная s3.

Поскольку s3 это переменная, а не константа, ее значение можно изменять в программе, например s3=”Nanoelectronics”;

В данном случае переменная s3, которая раньше содержала адрес нулевого символа строки ”Microelectronics”, теперь содержит адрес нулевого символа строки ”Nanoelectronics”.

20

Технология и языки программирования

Соседние файлы в папке Бочаров презентации 1 семестр