Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по программ(мои).doc
Скачиваний:
19
Добавлен:
01.03.2025
Размер:
970 Кб
Скачать
☆

Билет 8

  1. Ввод-вывод как средство связи пользователя с пк.(билет2)

Процедуры ввода и вывода - средства осуществления диалога между пользоват и пк. В зависимости от потребности пользователя необходимо использовать различные операторы ввода, от обычного оператора scanf(), до более специализированных gets.

Функция printf() осуществляет форматный вывод на устройство стандартного вывода (дисплей). Общий вид обращения к функции printf() следующий:

printf(управляющая строка, аргумент 1, аргумент 2, …);

scanf(строка_формата, аргум1, …, аргументN)

int a, b;

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

Форматированный вывод из файла и ввод в файл

 int fprintf(FILE *указатель файла, const char *управляющая_строка, арг1...);  int fscanf(FILE *указатель файла, const char *управляющая_строка, арг1...); Функция getchar() получает один символ, поступающий с устройства стандартного ввода-вывода (клавиатура) и передает его выполняющейся в данный момент программе. Функция putchar() получает один символ, поступающий из программы и пересылает его для вывода на экран. Пример:

#include<stdio.h> void main (void) { char ch;   ch=getchar();   putchar(ch); }

Для Неформатир две функции: fread() и fwrite().

size_t fread(void *буфер, size_t колич_байт, size_t счетчик, FILE *уф);

size_t fwrite(const void *буфер, size_t колич_байт, size_t счетчик, FILE *уф);

2. Примеры абстрактных структур: стеки +25билет

Стек – это линейный список, все записи в который вставляются и выбираются с одного конца, называемого вершиной стека. Доступ к элементам организован по принципу LIFO(«последним пришёл — первым вышел»). Функция PUSH - помещение в стек и POP - извлечение из стека Языки программирования высокого уровня также используют стек вызовов для передачи параметров при вызове процедур.

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

struct StackStruct {

int n; // счетчик элементов

int Array[100]; // буфер

} Stack;

Операции над стеками: создание, добавление Эл-та, извлечение Эл-та, проверка пустой или нет?

3.Правила перегрузки операторов. Приоритеты операторов.

Операторы рассматриваются как ф-ции, которые имеют прототип: тип operator имя_оператора (список_параметров); operator – ключевое слово. Поэтому операторы, как и ф-ции, можно перегружать.

Перегрузка операторов должна удовл. требованиям:

- нельзя вводить новых операторов;

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

- нельзя изменять количество параметров оператора;

- приоритеты перегр. опер. не изм-ся;

- оператор не может иметь аргументов по умолчанию, за исключ. оператора вызова ф-ции ();

- оператор не может иметь неопред. кол-ва параметров, за исключ. оператора вызова ф-ции ().

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

Перегружаются почти все операторы, исключая:

- . – точка, оператор доступа к члену класса;

- .* - оператор доступа к члену класса через указатель;

- :: - оператор разреш. области видимости;

- :? – условный оператор;

Нельзя перегружать препроцессорные операторы.

Приоритеты операторов

В зависимости от сочетания операторов, в исполяемом алгоритме изменяется его порядок, а изменение этого порядка зависит от самих операторов.

() [] . ~ -> Слева направо

! &(ун) *(ун) -(ун) ~(ун) ++ -- @(ун) Справа налево

% * / Слева направо

+ - @ Слева направо

<< >> Слева направо

< > <= >= %< %> %<= %>= Слева направо

!= == %== %!= Слева направо

&,^,|,&&,||,?(,,) Слева направо

= += -= *= /= %= &= |= ^= >>= <<= as Справа налево

Билет №9