Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 10:36   #1
realt
 
Регистрация: 19.04.2009
Сообщений: 3
По умолчанию Построить блок схему

Здравствуйте. Надо сдавать ... ну вообщем как обычно продержал до последнего дня... Пытался нарисовать сам, но не выходит.
Пробовал и программы для построения(fceditor - который пишет Lexical error, Code Visual to Flowchart но он создаёт все блоки схемы прямоугольными...)
Вообщем прошу вашей помощи.
Вот постановка задачи:
Напишите программу, которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа подсчитывает количество предложений во всех файлах и выводит предложения в другой файл по одному на строке в порядке уменьшения длины.
А вот код программы:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>

char *filename;
char *tmp_str;
char *result_str;
FILE *open_f;
FILE *result_f;
char **str_array;
int i, j, count, ind, max, length, jlen;
FILE *file_list;
FILE *result;
char list_path[256];

void rus (char*src) 
{
    char dst[256];
    CharToOem(src,dst);
    printf("%s\n", dst);
}

int main(int argc, char *argv[])
{
    filename = (char*)malloc(256);
    tmp_str = (char*)malloc(1024);
    result_str = (char*)malloc(1024);
    str_array = (char**)malloc(8192);
    i = 0; j=0; count = 0;
  
	rus("Введите имя файла содержащего пути к другим файлам:");
	scanf("%s", list_path);
    file_list = fopen(list_path, "r");
	if(!file_list)
	{
		perror("Error opening file\n");
		return -1;
    }
    while(!feof(file_list))
    {
        fscanf(file_list, "%s\n", filename); // \n - to avoid the new line symbol
        printf("Opening %s\n", filename);
        open_f = fopen(filename, "r");
        if(!open_f)
        {
            perror("Error opening file\n");
            return -1;
        }
        
        //read files by word
        //strcat combines words to expressions
        strcpy(result_str,""); //clear string
        while(!feof(open_f))
        {
            fscanf(open_f, "%s", tmp_str);
            if((strchr(tmp_str,'.') == NULL) && (strchr(tmp_str,'!') == NULL) && (strchr(tmp_str,'?') == NULL))
            {
               strcat(result_str, tmp_str);
               strcat(result_str, " ");
               continue;
            }
            else
            {
                strcat(result_str, tmp_str);
            }
            str_array[i] = (char*)malloc(strlen(result_str));
            strcpy(str_array[i++], result_str);
            strcpy(result_str,""); //clear string
        }
        fclose(open_f);
        
        
    }
    fclose(file_list);
    count = i;
    
        for(j=0;j<count;j++)
       rus(str_array[j]);
       printf("\n\n\n\n");
    
    for(i=0;i<count;i++)
    {
       ind = i; length = strlen(str_array[i]); max =0;
       
       for(j=i+1;j<count;j++)
       {
          jlen = strlen(str_array[j]);
          if(jlen > length && jlen > max)
          {
                ind = j;
                max = jlen;
          }
       }
         
       if(ind != i)
       {
          strcpy(tmp_str, str_array[ind]);
          strcpy(str_array[ind], str_array[i]);
          strcpy(str_array[i], tmp_str);
       }
    }
          
    for(j=0;j<count;j++)
       rus(str_array[j]);

	rus("Запись в результирующий файл");
	
	result = fopen("result_file.txt","w");
	for(j=0;j<count;j++)
	{
        fprintf(result, "%s\n", str_array[j]);
	}
	fclose(result);
    
    return 0;
}
Программа работает как надо... А вот блок схема...
realt вне форума Ответить с цитированием
Старый 19.04.2009, 15:47   #2
realt
 
Регистрация: 19.04.2009
Сообщений: 3
По умолчанию

Народ, горю... помогите, кто-нибудь...
realt вне форума Ответить с цитированием
Старый 20.04.2009, 11:00   #3
realt
 
Регистрация: 19.04.2009
Сообщений: 3
По умолчанию

Так и не выручили...
realt вне форума Ответить с цитированием
Старый 25.05.2010, 17:34   #4
Денис999
Форумчанин
 
Регистрация: 24.05.2010
Сообщений: 124
По умолчанию

Вот хорошая программа FCEditor . Составит Блок-Схему за секунды и мучатся не приходиться)))
Денис999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить задачу и построить блок-схему Batusay Фриланс 20 23.09.2011 18:25
Помогите сделать блок схему! Лёха Паскаль, Turbo Pascal, PascalABC.NET 4 24.01.2011 19:32
проверить блок-схему felmor Паскаль, Turbo Pascal, PascalABC.NET 2 04.01.2009 15:43
помогите составить блок схему ДЖО Помощь студентам 1 29.10.2008 02:20
построить схему машинного алгоритма и составить Паскаль-программу решения задачи RASTOMAN Паскаль, Turbo Pascal, PascalABC.NET 3 18.12.2007 22:21