Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.04.2009, 20:54
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
Блок схема.
Мужики вери нид хэлп(выручайте короче  )...
Завтра нужно сдавать курсовик, а эти блок-схемы вообще забыл как рисовать...
Вот постановка задачи:
Код:
Написать программу, которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа подсчитывает количество предложений во всех файлах и выводит предложения в другой файл по одному на строке в порядке уменьшения длины.
Вот сам код:
Код:
#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;
}
Помогайте рисовать...
|
|
|

18.04.2009, 21:12
|
|
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме: 5609275
Репутация:
1474
|
|
оффтоп, конечно же, но не смог удержаться. при написании кода для большего понимания сначала рисуется схема, а потом уже сам код.
|
|
|

18.04.2009, 21:15
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
Это только в книжках так пишут...
Ну может кто-то знает...
|
|
|

18.04.2009, 22:08
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
Сообщение от оlbaneс
оффтоп, конечно же, но не смог удержаться. при написании кода для большего понимания сначала рисуется схема, а потом уже сам код.
Ещё один оффтоп - Блок-схемы никто никогда и нигде не рисует, не считая придурошных преподов заставляющих это делать несчастных студентов.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

18.04.2009, 22:15
|
|
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме: 5609275
Репутация:
1474
|
|
ну может не блок-схема, но на бумажке я иногда рисую что куда должно обращаться.
бывает сел писать и по ходу пьесы запутался как хотел исполнить.
|
|
|

18.04.2009, 22:37
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
2 Ch3сk Ну сначала обьявляем перменные в паралеллограме, потом условия в прямоугольнике ну и вывод)
ээ переменные в прямоугольнике, в ромбе if, начало что-то типа овала тагже как и конец
|
|
|

18.04.2009, 22:45
|
|
Участник форума
Регистрация: 01.09.2005
Сообщений: 194
Провел на форуме: 818095
Репутация:
34
|
|
http://ru.wikipedia.org/wiki/Блок-схема
|
|
|

18.04.2009, 22:48
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 224
Провел на форуме: 5075819
Репутация:
274
|
|
Сообщение от Qwazar
Ещё один оффтоп - Блок-схемы никто никогда и нигде не рисует, не считая придурошных преподов заставляющих это делать несчастных студентов.
))ппц, в крупных компаниях их рисуют чувак...
|
|
|

18.04.2009, 22:49
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
kfor... меня удивляют такие люди как ты (не в обиду...)
Я попросил добрых людей нарисовать...
|
|
|

18.04.2009, 23:03
|
|
Участник форума
Регистрация: 01.09.2005
Сообщений: 194
Провел на форуме: 818095
Репутация:
34
|
|
Нарисовать что? По твоей проге блоксхему?
Ты написал что подзабыл как рисовать, а не ясно попросил что бы люди тебе нарисовали.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|