Динамические массивы
Изучение методов организации массивов переменной размерности и работы с ними. Схема алгоритма работы с динамическими массивами. Тестовые примеры для проверки программы. Одновременная работа с неограниченным количеством строк и файловыми указателями.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 03.12.2019 |
Размер файла | 129,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Лабораторная работа
Динамические массивы
по дисциплине: «Программирование»
Санкт-Петербург 2019г.
1. Цель работы
Изучение методов организации массивов переменной размерности и работы с ними.
2. Постановка задачи
Скопировать текстовый файл, зеркально поменяв порядок строк.
Формализация задачи:
Обработанный файл вывести в поток данных.
3. Схема алгоритма
Рисунок 1-Схема алгоритма ф. main.
Рисунок 2- Схема алгоритма функции copy.
Рисунок 3- Схема алгоритма функции tst.
Рисунок 4- схема алгоритма функции read_and_wr_f
4. Листинг программы
#pragma warning (disable: 4996)
#include <stdio.h>
#include <stdlib.h>
#define YES 1
#define NO 0
int main(void)
{
FILE *in_fd, *out_fd;
char **stringarr, *string, c;
int str_cnt, let_cnt;
if (!(in_fd = fopen("infile.txt", "r")) ||!(out_fd = fopen("outfile.txt", "w")))
{
perror("Error while opening file");
system("pause");
return -1;
}
str_cnt = 0;
let_cnt = 0;
stringarr = NULL;
string = NULL;
do {
c = fgetc(in_fd);
if (c == '\n' || c == EOF)
{
stringarr = (char**)realloc(stringarr, (str_cnt + 1) * sizeof(char*));
string = (char*)realloc(string, (let_cnt + 2) * sizeof(char));
string[let_cnt++] = (c == EOF) ? '\n': c;
string[let_cnt] = '\0';
stringarr[str_cnt++] = string;
string = NULL;
let_cnt = 0;
}
else
{
string = (char*)realloc(string, (let_cnt + 1) * sizeof(char));
string[let_cnt++] = c;
}
} while (c!= EOF);
str_cnt--;
while (str_cnt >= 0)
{
fputs(stringarr[str_cnt], out_fd);
free(stringarr[str_cnt--]);
}
fclose(out_fd);
fclose(in_fd);
printf("The program was successfully completed\n");
system("pause");
return 0;
алгоритм динамический массив
5. Набор тестовых примеров для проверки программы
Рисунок 1- Исходный файл.
Рисунок 2- Получившийся файл.
Вывод
В программе можно одновременно работать с неограниченным количеством строк, но каждая из них должна быть сопоставлена со своим файловым указателем. Для этого файл надо открыть с помощью библиотечной функции fopen(), указав в качестве параметров имя файла и способ его использования (чтение или запись). Перед выходом из программы с помощью функции fclose() следует закрыть каждый открытый файл.
Размещено на Allbest.ru
...Подобные документы
Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010Объявление, выделение, освобождение памяти под динамические массивы. Обращение к элементам. Решение задач с использованием динамических массивов на языке C++. Разработка и реализация программы для формирования и обработки динамического двумерного массива.
курсовая работа [813,4 K], добавлен 13.06.2014Преобразование матрицы по заданным правилам. Методика работы с массивами, основанная на классических алгоритмах. Разработка и описание блок-схемы алгоритма. Листинг программы, экраны работы и отладки программы. Инструкция для пользователей программы.
контрольная работа [338,4 K], добавлен 29.01.2013Широкое использование компьютерных и информационных технологий. Концепции типов данных. Алгоритмы сортировки одномерных массивов. Описание двумерного массива Паскаля. Методы доступа к элементам массивов. Индексные, динамические и гетерогенные массивы.
курсовая работа [66,3 K], добавлен 07.12.2010Анализ особенностей работы и основных операций с символьными строками, указателями, функциями, динамически выделяемой памятью. Ввод текста в пустые строки. Вывод введённого текста на экран. Замена первых слов строк. Проверка правильности работы программы.
курсовая работа [1,9 M], добавлен 17.07.2014Решение задач, прямо связанных с применением циклов и массивов. Условия применения различных видов циклической структуры. Операторы цикла с предусловием while, постусловием do-while и for. Особенности работы с одномерными и двумерными массивами.
курсовая работа [1,1 M], добавлен 31.08.2019Анализ методики использования многомерных массивов в среде Delphi. Общее понятие массивов, их реализация, достоинства, недостатки. Массивы в Object Pascal. Описание функциональной структуры приложения: модуль MatrixOperations, модуль fileIO, модуль form.
курсовая работа [1,3 M], добавлен 28.09.2010Блок-схема программы, подсчитывающей количество слов последовательности, начинающихся с большой буквы и оканчивающихся цифрой. Символьный квадратный массив и его заполнение. Создание программы, которая формирует файл записей заданной структуры.
курсовая работа [529,7 K], добавлен 19.12.2010Постановка задачи и ее математическая модель. Блок-схема алгоритма обработки массивов координат точек. Тестирование алгоритма сортировки. Используемые глобальные и локальные переменные. Листинг программы на языке Си. Анализ результатов. Пример работы.
курсовая работа [1,8 M], добавлен 08.11.2012Понятие массива и правила описания массивов в программах на языке С. Рассмотрение основных алгоритмов обработки одномерных массивов. Примеры программ на языке С для всех рассмотренных алгоритмов. Примеры решения задач по обработке одномерных массивов.
учебное пособие [1,1 M], добавлен 22.02.2011Особенности строковых типов данных и их обработка. Записи как совокупность поименованных компонентов различных типов, основные принципы работы с ними. Массивы - элементы и массивы структур. Понятие и свойства объединений. Файлы и работа с ними в языке СИ.
презентация [73,1 K], добавлен 09.12.2013Особенности работы с процедурами и двумерными массивами, последовательность вызова процедур. Способы описания и использования многомерных массивов, назначение процедур, их описание и обращение к ним. Набор программы, ее отладка и тестирование данных.
лабораторная работа [112,1 K], добавлен 03.10.2010Изучение понятия и основных видов массивов. Ввод массива с клавиатуры и вывод на экран. Сортировка массивов. Метод простых обменов (пузырьковая сортировка). Сортировка простым выбором и простым включением. Решение задач с использованием массивов Паскаля.
курсовая работа [82,1 K], добавлен 18.03.2013Элементарные функции: тригонометрические и экспоненциальные, для определения округлений и остатков, размерности и размера матриц, задания одномерных и дву- массивов, векторов-столбцов и векторов-строк, удаления строк и столбцов, перестановки элементов.
презентация [139,0 K], добавлен 24.01.2014Запись в файл и чтение в С++. Общее понятие о структуре. Многомерные и двумерные массивы. Логика работы программы. Схема алгоритма функции Main. Определение суммарного заработка, сотрудника с наибольшей зарплатой. Создание новой базы, листинг программы.
курсовая работа [275,7 K], добавлен 07.10.2012Понятие и внутренняя структура показателей, имеющих отношений к основам программирования на алгоритмическом языке СИ: указатели и массивы, передача параметров по ссылке. Исследование примеров программ, иллюстрирующих работу с указателями и массивами.
лекция [134,4 K], добавлен 26.07.2013Описание принципа работы генетического алгоритма, проверка его работы на функции согласно варианту на основе готовой программы. Основные параметры генетического алгоритма, его структура и содержание. Способы реализации алгоритма и его компонентов.
лабораторная работа [20,2 K], добавлен 03.12.2014Ознакомление с основными понятиями и организацией ввода-вывода, обработкой массивов. Описание одномерных и двумерных массивов. Описание строк и операции с ними. Комбинированный тип данных - записи. Характеристика записей, использующих вариантную часть.
реферат [84,6 K], добавлен 09.02.2011Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.
курсовая работа [1,3 M], добавлен 02.12.2009История возникновения и развития гигрометра, его виды и принцип работы. Методика разработки алгоритма автоматизированной системы определения относительной влажности помещения со стабильной точностью измерений. Работа с адресными переменными (указателями).
курсовая работа [1,1 M], добавлен 20.01.2016