[Информатика] Лекции 3-7
.pdfПередача параметров
•по значению: в стек заносятся копии значений
аргументов, и операторы работают с копиями (фактические параметры не изменяются)
прототип:
void foo1(int one, double two, char three); вызов: foo1(a,b,c);
•по адресу: в стек заносятся копии адресов аргументов, а функция осуществляет доступ к ячейкам памяти по этим адресам (фактические изменяются)
прототип:
void foo2(int* one, double* two, char* three);
вызов: foo2(&a,&b,&c);
Рекурсивные функции
Прямая рекурсияфункция вызывает саму себя Косвенная рекурсия-
несколько функций вызывают друг друга
Дракон Хартера-Хэйтуэя
Стандартные функции(1)
ctype.h функции классификации и преобразования символов
isalnum(), isalpha(),iscntrl(),….. toupper(),tolower()
math.h математические функции floor(),ceil(),sin(),…
stdio.h функции ввода-вывода gets(),getchar(),getc(), fscanf(),sscanf()
(get->put, scanf->printf), fflush(), fsetpos(),ftell(),fgetpos()
Стандартные функции(2)
stdlib.h набор функций различного назначения rand(), srand(),malloc(),atoi(),atol(),atof(),itoa(),… srting.h функции работы со строками strcat(),strcmp(),strstr(),strcpy(),strtok(),strlen() time.h функции работы с датой и временем clock(), ctime(), time(), asctime(),localtime() asctime(localtime(time.h))
Работа с файлами
•#include <stdio.h>
•#include <stdlib.h>
•void main(void) {
•int numLines = 0;
•char lineBuffer[80];
•FILE *file = fopen(“c:\\inputfile.txt”, “rt”);
–if (file==0) {
–printf(“Cannot open input file\n”);
–exit(1);
–}
•while (fgets(lineBuffer, 80, file)) {
–if (lineBuffer*0+ == ‘#’) ,
–numLines++;
–}
•}
•printf(“%d lines began with #\n”, numLines);
•fclose(file);
•}
Структуры и объединения
Лекция 6
+
Структуры
•DEF: Объединенное в единое целое множество поименованных компонентов -
элементов данных
или
Элемент структуры-поле, может иметь любой тип, кроме типа самой структуры
+
Пример 1
Определение экземпляров
+
Пример 2
Определение экземпляров