
- •Экзамен по пяву Структура билета
- •Оформление решений
- •Задачи на составление программы - вопрос 3 билета
- •Задачи на составление подпрограмм (функций) - вопрос 4 билета
- •Задачи на определение объема памяти - вопрос 2 билета
- •Int inf_1_el (inf_type *X, struct list *s)
- •Int kz; // Код завершения функции: 0 - успех, 1 - неудача
- •Inf_type rez; // Результат - значение 1-го элемента
- •Int inf_k_el (inf_type *X, int k, struct list *p)
- •Inf_type rez; // Результат - значение k-го элемента
- •Int k; // Номер искомого элемента
- •Int inf_k_el (inf_type *x1, inf_type *x2, int k, struct list2 *p)
- •Inf_type rez1, rez2; // Вставить описания необходимых величин
- •Int k; // Номер искомого элемента
- •Int inf_k_el (inf_type *X, int k, struct list *p)
- •Inf_type rez; // Вставить описания необходимых величин
Int inf_1_el (inf_type *X, struct list *s)
{
if(s==NULL) return 1; // неудача
else {
*X = s->INF_;
return 0; // успех
}
}
int main()
{ struct LIST *q; // указатель списка
Int kz; // Код завершения функции: 0 - успех, 1 - неудача
Inf_type rez; // Результат - значение 1-го элемента
if ((fin=fopen("input.txt","r"))==NULL)
{ puts ("File INPUT.TXT is not found"); return 1; }
if ((fout=fopen("output.txt","w"))==NULL)
{ puts ("File OUTPUT.TXT is not opened"); return 1; }
CreateList(&q); // создание списка p из значений файла input.txt
// PrintList(q); // Вывод списка p для отладки или решения задачи
// Вызов функции-решения задачи
kz = INF_1_EL(&rez, q); // Код завершения функции: 0/1
fprintf(fout, "%d", kz);
if(kz==0) // есть 1-й элемент
fprintf(fout, " " F_, rez); // вывод 1-го элемента в формате F_
fclose(fin); fclose(fout);
return 0;
}
// P00_5.C Пример решения задачи 00.5 (вместе с файлом LISTNE.C)
// Задача 00.5. Составить функцию получения значения k-го элемента
// заданного списка из вещественных чисел.
#include <stdio.h>
#include <stdlib.h>
// РЕШЕНИЕ ЗАДАЧИ 00.5: описание данных и функция inf_k_el
#define INF_TYPE float // ТИП информации ВЫБРАТЬ: int char float char*
#define F_ "%f" // ФОРМАТ информации ВЫБРАТЬ: %d %c %f %s
#define INF_ Z // ИМЯ информации Z можно оставить или заменить
struct LIST // элемент списка
{ INF_TYPE INF_; // информация элемента списка
struct LIST *next; // ссылка на следующий элемент
};
FILE *fin, *fout; // Входной и выходной файлы
#include "listNE.c" // Функции создания и вывода списка
// Получение x - значения k-го элемента списка p
Int inf_k_el (inf_type *X, int k, struct list *p)
{
struct LIST *i; // Указатель текущего элемента
// while(k==3); // Имитация зацикливания
for (i=p; k>1 && i!=NULL; k--)
i = i->next; // Переход к следующему элементу
if (k==1 && i!=NULL) // p указывает на k-й элемент
{ *x = i->INF_;
return 0; // Успешное завершение
}
else return 1; // Неудача: в списке нет k-го элемента
}
int main()
{ struct LIST *p; // указатель списка
int ExitCode; // Код завершения: 0 - успех, 1 - неудача
Inf_type rez; // Результат - значение k-го элемента
Int k; // Номер искомого элемента
fin = fopen("input.txt","r");
fout = fopen("output.txt","w");
if (fin==NULL || fout==NULL)
{ puts ("File INPUT.TXT or OUTPUT.TXT is not opened");
return 1;
}
fscanf(fin, "%d", &k); // Номер искомого элемента
CreateList(&p); // создание списка p из значений файла input.txt
// PrintList(p); // Вывод списка
ExitCode = inf_k_el(&rez,k,p); // Получение k-го элемента rez
fprintf(fout, "%d ", ExitCode); // Вывод кода завершения
if(ExitCode==0) // есть k-й элемент
fprintf(fout, F_, rez); // Вывод k-го элемента в формате F_
fclose(fout); fclose(fin);
return 0;
}
// P00_6.C Пример решения задачи (вместе с файлом LIST2NE.C)
// Задача 00.6. Составить функцию получения значения k-го элемента
// заданного списка - ПАРЫ ВЕЩЕСТВЕННЫХ ЧИСЕЛ.
#include <stdio.h>
#include <stdlib.h>
// РЕШЕНИЕ ЗАДАЧИ 00.6: описание данных и функция inf_k_el
#define INF_TYPE float // ТИП информации ВЫБРАТЬ: int char float char*
#define F_ "%f" // ФОРМАТ информации ВЫБРАТЬ: %d %c %f %s
#define INF1_ Z1 // имена полей информации: Z1
#define INF2_ Z2 // и Z2
struct LIST2 // элемент списка
{ INF_TYPE INF1_, INF2_; // информация элемента списка
struct LIST2 *next; // ссылка на следующий элемент
};
FILE *fin, *fout;
#include "LIST2NE.c" // Ф-ции создания и вывода списка ПАР ЧИСЕЛ
// Получение x1 и x2 - значений k-го элемента списка p