Fclose(f_mass); //закрытие файла после записи




f_mass = fopen("E:/User/f_mass.txt", "r"); //открытие файла для чтения

count = 0; //количество прочитанных чисел

while (!feof(f_mass)) //пока не конец файла f_mass

{

i = fscanf(f_mass, "%d", &n);

count++;

}

printf("\nВ файле записано %d чисел\n", count);

count = sqrt(count); //определение размера записанного в файле массива

f_mass = fopen("E:/User/f_mass.txt", "r");

printf("\nПрочитанный из файла массив:\n");

for (i=0; i<count; i++) //чтение массива из файла и вывод его на экран построчно

{

for (j=0; j<count; j++)

{

fscanf(f_mass, "%5d", &n);

printf("%5d", n);

}

printf("\n");

}

printf("\n");

f_mass = fopen("E:/User/f_mass.txt", "r");

printf("\nГлавная диагональ массива:\n");

for (i=0; i<count; i++) //чтение массива из файла и вывод на экран его главной диагонали

for (j=0; j<count; j++)

{

fscanf(f_mass, "%5d", &n);

if (i == j)

printf("%5d", n);

}

printf("\n\n");

f_mass = fopen("E:/User/f_mass.txt", "r");

printf("\nПобочная диагональ массива:\n");

for (i=0; i<count; i++) //чтение массива из файла и вывод на экран его побочной диагонали

for (j=0; j<count; j++)

{

fscanf(f_mass, "%5d", &n);

if (j == count-i-1)

printf("%5d", n);

}

printf("\n\n");

Fclose(f_mass); //закрытие файла

return 0;

}

//описание функции формирования квадратного массива

void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn])

{

int i, j, m;

Time_t t; // текущее время для инициализации

// генератора случайных чисел

srand((unsigned) time(&t)); // инициализация генератора

// случайных чисел

m = mass_max-mass_min + 1;

// получение случайного числа в диапазоне

// от vector_min до vector_max

for (i=0; i<nn; i++)

for (j=0; j<nn; j++)

mass[i][j]=rand()% m + mass_min;

}

4. Компиляция, отладка, тестирование и получение результата:

 

5. Структура файла f.txt:

 

-9 -9 2 -6 2

1 9 -10 7 -9

3 0 -3 3 6

2 8 -6 -10 9

-9 7 2 -1 -4

 

Задания на лабораторную работу №8

Размеры создаваемых файлов считать заранее неизвестными и определять их при чтении файлов. При чтении из файла массивы не использовать. Можно использовать рабочие файлы.

Вариант 1

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить минимальное и максимальное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между минимальным и максимальным.

Задание 2

Создать текстовый файл, в который построчно записать квадратный массив massivnn, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размер массива n задать константой. Границы диапазона v_min и v_max задать с консоли. Прочитать из созданного файла k -ю строку и k -й столбец и вывести их на экран. Значение k задать с консоли. При чтении из файла считать размер массива неизвестным. Определить его при чтении файла.

Вариант 2

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать квадратный массив massivnn, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размер массива n задать константой. Границы диапазона v_min и v_max задать с консоли. Прочитать из созданного файла все диагонали, параллельные главной, и вывести их на экран построчно. При чтении из файла считать размер массива неизвестным. Определить его при чтении файла.

 

Вариант 3

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать квадратный массив massivnn, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размер массива n задать константой. Границы диапазона v_min и v_max задать с консоли. Прочитать из созданного файла все диагонали, параллельные побочной, и вывести их на экран построчно. При чтении из файла считать размер массива неизвестным. Определить его при чтении файла.

 

Вариант 4

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Прочитать из созданного файла r -ю строку и p -й столбец и вывести их на экран. Значения r и p задать с консоли. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

Вариант 5

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку четное и последнее нечетное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Вывести на экран строку с максимальным элементом и столбец с минимальным элементом файла. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 6

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку нечетное и последнее четное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Вывести на экран строку с минимальным элементом и столбец с максимальным элементом файла. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 7

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Вывести на экран строку с максимальной суммой элементов и столбец с минимальной суммой элементов. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 8

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Вывести на экран строку с минимальной суммой элементов и столбец с максимальной суммой элементов. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

Вариант 9

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку положительное и последнее отрицательное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить максимальный и минимальный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 10

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку отрицательное и последнее положительное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить второй максимальный и второй минимальный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 11

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Отсортировать файл по возрастанию.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Обнулить все элементы файла, находящиеся между его максимальным и минимальным элементами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 12

Задание 1

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

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить первый четный и последний нечетный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

Вариант 13

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Перевернуть элементы файла – сделать “ поплавок ”.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить первый положительный и последний отрицательный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 14

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Удалить из файла его максимальный и минимальный элементы.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить первый нечетный и последний четный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Вариант 15

Задание 1

Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Удалить из файла вторые по величине максимальный и минимальный элементы.

Задание 2

Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Определить первый отрицательный и последний положительный элементы в файле и поменять их местами. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла.

 

Лабораторная работа № 9

Рекурсия

Тема: Программирование рекурсивных алгоритмов.

Цель работы: Освоить методику программирования рекурсивных алгоритмов. Освоить методику тестирования программ.

 

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.
  2. Составить схему алгоритма решения задачи.
  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

- в нормальных условиях,

- при граничных условиях,

- при некорректных входных данных,

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

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

  1. Получить результат.
  2. Оформить отчет по лабораторной работе.

 

Пример оформления работы

Задание 1.

Написать рекурсивную функцию, вычисляющую факториал заданного целого положительного числа n.

 

1. Для вычисления n! можно воспользоваться следующими соотношениями:

1! = 1

2! = 1•2 = 2•1!

3! = 1•2•3 = 3•2!

...

n! = n•(n-1)!

2. Схема алгоритма решения задачи:

 

3. Код программы

 

3.1. На языке Паскаль:

 

Program Variant_0;

Uses WinCrt;

Var n: Word;

fact: LongInt;

Function Factorial(k:Word):LongInt;

Begin

If (k=1) Or (k=0)

Then Factorial:=1 {терминальная ветвь}

Else Factorial:=k*Factorial(k-1); {рекурсивная ветвь}

End; {Factorial}

Begin {головная программа}

WriteLn('Лабораторная работа №9_1');

WriteLn('Вариант №0');

WriteLn('ИС-11-1');

WriteLn('Пупкин Василий');

WriteLn;

Write('n=');

ReadLn(n);

fact:=Factorial(n);

WriteLn('factorial=', fact);

End.

3.2. На языке Си:

 

#include <stdio.h>

#include <conio.h>

#include <math.h>

// прототип функции

unsigned long factorial(unsigned int n);

Int main()

{

unsigned int k;

unsigned long fact;

printf("\nЛабораторная работа №9_1");

printf("\nВариант №0");

printf("\nПО-11-1");

printf("\nПупкин Василий\n");

printf("\nВведите натуральное число:");

scanf("%d", &k);

fact = factorial(k);

printf("\nФакториал числа %d равен %d\n", k, fact);

return 0;

}

//описание функции



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: