Лабораторная работа 4. Подпрограммы. Задание на лабораторную работу Написать программу, реализующую хранение информации, указанной в вариантах индивидуальных.

Презентация:



Advertisements
Похожие презентации
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Advertisements

Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 4 Работа с бинарными файлами (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков.
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
Основы информатики Лекция. Функции Заикин Олег Сергеевич
Основные понятия программирования. АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт.
Переменная - это величина, которая имеет имя, тип и значение. Значение переменной может меняться во время выполнения программы. В компьютерах каждая переменная.
Массивы и строки Лекция 5. Одномерные массивы. Объявление. Общая форма объявления: тип имя_переменной[размер]; Пример: double balance[100]; balance[3]
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Двумерные динамические массивы. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор.
ЕДИННЫЙ ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН Часть С демо-варианта 2009.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Данные в программах и алгоритмах Программы и их алгоритмы пишутся для обработки данных. Чтобы реализовать алгоритм, программам необходимо работать с данными.
Распределение памяти. Динамическое выделение памяти.
Программирование на языке Паскаль ЗАПИСИ в Паскале (RECORD)
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Транксрипт:

Лабораторная работа 4. Подпрограммы

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

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

Переменные типа структура объявляются следующим образом: struct { } ; Здесь, – правильный идентификатор; struct – зарезервированное слово; – список полей; представляет собой последовательность разделов структуры, между которыми ставится точка с запятой.

Массив структур можно описать следующим образом: struct Stud { char fam[15], name [15]; int group; Birthday bd; float rating; } PMI[100];

Указатели Язык Си имеет средства работы непосредственно с областями оперативной памяти ЭВМ, задаваемыми их адресами (указателями). В языке C указатели строго типизированы, т. е. различают указатели (адреса) символьных, целых, вещественных величин, а также типов данных, создаваемых программистом.

Для указателей одного и того же типа допустимой является операция присваивания, кроме того указателю типа void может быть присвоено значение адреса данного любого типа, но не наоборот, например int *a, *b; double *d; void *v;... a = b; /* Правильно */ v = a; /* Правильно */ v = d; /* Правильно */ b = v; /* Неправильно */ d = a; /* Неправильно */

Для поддержки адресной арифметики в языке Си имеются две специальные операции - операция взятия адреса & и операция получения значения по заданному адресу * (операция разадресации). Рассмотрим работу вышеописанных операций на следующем примере int *p, a, b; double d; void *pd; p = &a; *p = 12; p = &b; *p = 20; /* Здесь a содержит число 12, b - число 20 */ pd = &d; *( (double *) pd ) = a; /* Здесь d содержит число 12.0 */

Состояние ячеек до первого присваивания P, адрес 1000 a, адрес 2000b, адрес 4000 мусор Состояние ячеек после присваивания p = &a p, адрес 1000a, адрес 2000b, адрес мусор

Состояние ячеек после присваивания *p = 12 p, адрес 1000 a, адрес 2000 b, адрес мусор Состояние ячеек после присваивания p = &b p, адрес 1000a, адрес 2000b, адрес мусор

Состояние ячеек после присваивания *p = 20 p, адрес 1000a, адрес 2000b, адрес

Следует также опасаться случая, когда указатель содержит адрес объекта программы, завершившего свое существование. Например, результат работы следующей программы неверен и непредсказуем: #include double * Cube(double x) { double cube_val; cube_val = x*x*x; return &cube_val; } void main(void) { double *py; py = Cube(5); printf("y1 = %lf\n", *py); sin(0.7); printf("y1 = %lf\n", *py); }