Динамические массивы

Изучение методов организации массивов переменной размерности и работы с ними. Схема алгоритма работы с динамическими массивами. Тестовые примеры для проверки программы. Одновременная работа с неограниченным количеством строк и файловыми указателями.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.