
18.04.2009, 20:54
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
С нами:
10485026
Репутация:
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
С нами:
9744746
Репутация:
1474
|
|
оффтоп, конечно же, но не смог удержаться. при написании кода для большего понимания сначала рисуется схема, а потом уже сам код.
|
|
|

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

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

19.04.2009, 03:38
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
С нами:
11020706
Репутация:
4693
|
|
Сообщение от .ATK
))ппц, в крупных компаниях их рисуют чувак...
Чувак, я знаю о чём говорю.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
Последний раз редактировалось Qwazar; 19.04.2009 в 05:11..
|
|
|

19.04.2009, 11:50
|
|
Новичок
Регистрация: 04.08.2008
Сообщений: 29
С нами:
9351325
Репутация:
15
|
|
Сообщение от Qwazar
Чувак, я знаю о чём говорю.
Да больше похоже, что ты нифига не знаешь.
Блок-схемы часто используются, т.к. это один из этапов проектирования крупного ПО.
|
|
|

25.04.2009, 14:31
|
|
Banned
Регистрация: 13.04.2009
Сообщений: 5
С нами:
8989571
Репутация:
29
|
|
Сообщение от Qwazar
Ещё один оффтоп - Блок-схемы никто никогда и нигде не рисует, не считая придурошных преподов заставляющих это делать несчастных студентов.
Блок схемы являются клевым моментом при разработке программного обеспечения. Это заставляет разработчиков мыслить шире. Разделяя проект на части, условно зависимыми друг от друга. Данная техника облегчает весь процесс разработки.
|
|
|

28.04.2009, 22:56
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами:
9655526
Репутация:
1821
|
|
Сообщение от Harry Potter
Блок схемы являются клевым моментом при разработке программного обеспечения. Это заставляет разработчиков мыслить шире. Разделяя проект на части, условно зависимыми друг от друга. Данная техника облегчает весь процесс разработки.
Блок схема у программиста, при выполнении задачи, строится в голове...
|
|
|

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

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