Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Блок схема. (https://forum.antichat.xyz/showthread.php?t=116576)

Ch3ck 18.04.2009 20:54

Блок схема.
 
Мужики вери нид хэлп(выручайте короче:))...
Завтра нужно сдавать курсовик, а эти блок-схемы вообще забыл как рисовать...
Вот постановка задачи:
Код:

Написать программу, которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа подсчитывает количество предложений во всех файлах и выводит предложения в другой файл по одному на строке в порядке уменьшения длины.
Вот сам код:
Код:

#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]);
                free(str_array[j]);
        }
        fclose(result);
   
    return 0;
}

Помогайте рисовать...

оlbaneс 18.04.2009 21:12

оффтоп, конечно же, но не смог удержаться. при написании кода для большего понимания сначала рисуется схема, а потом уже сам код.

Ch3ck 18.04.2009 21:15

Это только в книжках так пишут...
Ну может кто-то знает...

Qwazar 18.04.2009 22:08

Цитата:

Сообщение от оlbaneс
оффтоп, конечно же, но не смог удержаться. при написании кода для большего понимания сначала рисуется схема, а потом уже сам код.

Ещё один оффтоп - Блок-схемы никто никогда и нигде не рисует, не считая придурошных преподов заставляющих это делать несчастных студентов.

оlbaneс 18.04.2009 22:15

ну может не блок-схема, но на бумажке я иногда рисую что куда должно обращаться.
бывает сел писать и по ходу пьесы запутался как хотел исполнить.

gold-goblin 18.04.2009 22:37

Цитата:

2 Ch3сk Ну сначала обьявляем перменные в паралеллограме, потом условия в прямоугольнике ну и вывод)
ээ переменные в прямоугольнике, в ромбе if, начало что-то типа овала тагже как и конец

kfor 18.04.2009 22:45

http://ru.wikipedia.org/wiki/Блок-схема

.ATK 18.04.2009 22:48

Цитата:

Сообщение от Qwazar
Ещё один оффтоп - Блок-схемы никто никогда и нигде не рисует, не считая придурошных преподов заставляющих это делать несчастных студентов.

))ппц, в крупных компаниях их рисуют чувак...

Ch3ck 18.04.2009 22:49

kfor... меня удивляют такие люди как ты (не в обиду...)
Я попросил добрых людей нарисовать...

kfor 18.04.2009 23:03

Нарисовать что? По твоей проге блоксхему?
Ты написал что подзабыл как рисовать, а не ясно попросил что бы люди тебе нарисовали.


Время: 12:36