Функция 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;
}