Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PODG_EKZ ПЯВУ осень 2011.RTF
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
54.49 Кб
Скачать

Структура билета

Билет содержит 5-6 задач, одна из которых - на составление программы и одна - на составление подпрограммы обработки списков.

Примеры их решения приведены далее. Разрешается пользоваться книгами.

Подпрограммы обработки списков

// Файл ListNE.C - функции создания и вывода списка

// функция создания списка (ввод значений из input.txt до EOF)

int CreateList (struct LIST **p )

{

INF_TYPE x; // Текущее значение

struct LIST *end,*new; // указатели последнего и нового элемента

*p=NULL;

while(fscanf(fin, F_, &x) != EOF)

{ new = (struct LIST *)malloc(sizeof(struct LIST));

new->INF_ = x;

new->next = NULL;

if(*p==NULL) *p = new;

else end->next = new;

end = new;

}

return 0;

}

// функция вывода списка

void PrintList (struct LIST *p)

{

// fprintf (fout, "\nЭлементы списка:\n");

for ( ; p!=NULL; p=p->next )

fprintf (fout, F_"\n", p->INF_);

}

// Файл List2NE.C - функции создания и вывода списка

// ПАР ЧИСЕЛ до EOF

// функция создания списка (ввод ПАР ЧИСЕЛ из input.txt до EOF)

int CrList2 (struct LIST2 **p )

{

INF_TYPE x1, x2;

struct LIST2 *end, *new;

*p=NULL;

while(fscanf(fin, F_ F_, &x1, &x2) == 2)

{ new=(struct LIST2 *)malloc(sizeof(struct LIST2));

new->INF1_ = x1; new->INF2_ = x2;

new->next = NULL;

if(*p==NULL) *p = new;

else end->next = new;

end = new;

}

return 0;

}

// функция вывода списка ПАР ЗНАЧЕНИЙ

void PrList2 (struct LIST2 *p)

{

// fprintf (fout, "\nЭлементы списка:\n");

for ( ; p!=NULL; p=p->next )

fprintf (fout, F_" "F_"\n", p->INF1_, p->INF2_);

}

// Файл ListSE.C - функции создания и вывода списка СЛОВ до EOF

// функция создания списка (ввод СЛОВ из input.txt до EOF)

Int CreateList (struct list **p )

{

// INF_TYPE x; // x теперь глобальная

struct LIST *end, *new;

*p=NULL;

while(fscanf(fin, F_, x) != EOF)

{ new=(struct LIST *)malloc(sizeof(struct LIST));

new->INF_ = x;

new->next = NULL;

if(*p==NULL) *p = new;

else end->next = new;

end = new;

x += strlen(x)+1; //* указатель на конец массива w

}

return 0;

}

// функция вывода списка

Void PrintList (struct list *p)

{

// fprintf (fout, "\nЭлементы списка:\n");

for ( ; p!=NULL; p=p->next )

fprintf (fout, F_"\n", p->INF_);

}

// P00_4.C Пример решения задачи (вместе с файлом ListNE.C)

// Задача 00.4. Составить функцию получения значения 1-го элемента

// заданного списка из целых чисел.

#include <stdio.h>

#include <stdlib.h>

// РЕШЕНИЕ ЗАДАЧИ 00.4: описание данных и функция INF_1_EL

#define INF_TYPE int // ТИП информации ВЫБРАТЬ: int char float char*

#define F_ "%d" // ФОРМАТ информации ВЫБРАТЬ: %d %c %f %s

#define INF_ Z // ИМЯ информации Z можно оставить или заменить

struct LIST // элемент списка

{ INF_TYPE INF_; // информация элемента списка

struct LIST *next; // ссылка на следующий элемент

};

FILE *fin, *fout; // Входной и выходной файлы

#include "listNE.c" // Функции создания и вывода списка

// Получение Х - значения 1-го элемента списка s

// Код завершения : 0 - есть 1-й элемент, 1 - список пуст.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]