Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursaya.docx
Скачиваний:
4
Добавлен:
09.02.2015
Размер:
667.54 Кб
Скачать

Функция f_text. Блок-схема функции f_text.

ИСПРАВИТЬ В сооответствиис кодом

1

2

3

4

5

6

7

8

9

Описание функции f_text.

Прототип:

Функция F_text принимает указатель на целочисленную переменную. Возвращает указатель на массив строк, при этом значение по адресу целочисленной переменной становится равной количеству строк в массиве строк. Для считывания каждой строки используется функция create_str. Если длина созданной строки равна нулю то она не добавляется в массив строк. Функция прекращает свою работу когда введенная строка равна максимальной по длине из ранее введенных строк.

Таблица проверки блок схемы функции F_text

Блока

I

*Dlina

*Rows

Max

*Dlina != Max

*Dlina > Max

Dlina != 0

1

2

0

0

3

3

4

Да

5

Да

6

3

7

Да

8

1

3

0

4

Да

5

Нет

7

Нет

3

3

4

Нет

9

Возврат TEXT

// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include <iostream>

using namespace std;

void Copy(int *f_ar,int col,char *Text_or)

{

char *Text_n = (char*)calloc(256,sizeof(char));

int I = 0, str_size = 0, int K;

while(I < col - 1)

{

if(str_size > 254)

{

Text_n = (char*)realloc(Text_n, str_size+1);

}

K = f_ar[I];

while(K <= f_ar[I+1])

{

Text_n[str_size] = Text_or[K];

str_size = str_size + 1;

K = K + 1;

}

I = I + 2;

}

if(str_size < 255)

{

Text_n = (char*)realloc(Text_n,str_size+1*sizeof(char));

}

Text_n[str_size+1] = '/0';

}

char *create_str(int *N)

{

char *str = NULL;

str = (char*)realloc(str, 256*sizeof(char));

*N = -1;

do

{

if(*N > 254)

{

str = (char*)realloc(str, (*N+1)*sizeof(char));

}

*N = *N +1;

str[*N] =_getchar_nolock();

}while(str[*N] != '\n');

if(*N < 255)

{

str = (char*)realloc(str, (*N+1)*sizeof(char));

}

str[*N] = '\0';

*N++;

return str;

}

char **Ftext(int* Size)

{

char **Temp_text = NULL;

int t_s = -1;

int Max = 0;

*Size = 0;

while(t_s != Max)

{

if(t_s > Max)

Max = t_s;

Temp_text = (char**)realloc(Temp_text,(*Size+1)*sizeof(char*));

Temp_text[*Size] = create_str(&t_s);

if(t_s != 0)

*Size = *Size + 1;

}

return Temp_text;

}

void print(char *Str)

{

cout << Str;

}

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