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

Форум АНТИЧАТ (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

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

Ch3ck 18.04.2009 23:49

Просил и прошу, чтобы нарисовали...

Qwazar 19.04.2009 03:38

Цитата:

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

Чувак, я знаю о чём говорю.

SmanxX1 19.04.2009 11:50

Цитата:

Сообщение от Qwazar
Чувак, я знаю о чём говорю.

Да больше похоже, что ты нифига не знаешь.
Блок-схемы часто используются, т.к. это один из этапов проектирования крупного ПО.

Qwazar 19.04.2009 12:15

Цитата:

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

Что ещё интересного расскажешь? :D

Ладно отвечу по серъёзному :) За свои 5 лет работы программистом в компаниях (фриланс и мини-конторы не считаю) я ни разу не видел чтобы кто нибудь рисовал блок-схемы. Почему?

1) Потому что они неудобны и излишне детализированы. А разработка - процесс динамичный, и программы постоянно меняются.
2) Заточены под процедурный подход, а сейчас какбы и подход к программированию меняется.
3) Их рисование заняло бы больше времени чем разработка самой программы, к тому-же п. 1 - программы меняются, и каждое изменение надо было бы ещё отображать в блок-схеме. А современное программирование направлено на получение прибыли, т.е. лишнее время тратить никто не любит и не будет.

В наше время во многих компаниях используются UML, но он на блок-схемы не похож. И тоже используется во многих компаниях только на этапе написания документации. (Видел только на одном проекте, да и то - требования заказчика). У UML кстати таже проблема - диаграммы надо всегда перерисовывать.

Обычно всё ограничивается небольшими набросками, из авторских кубиков и стрелочек с очень слабой детализацией и диаграммой классов, которая конечно со временем будет меняться.

SmanxX1 19.04.2009 12:19

Цитата:

Сообщение от Qwazar
Что ещё интересного расскажешь? :D

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

Цитата:

В наше время во многих компаниях используются UML
Именно! Но на UML, трудно показать показать действие какого-либо алгоритма, точнее не трудно, а менее информативно, скажем так, поэтому в отдельных случаях используются блок-схемы.

Qwazar 19.04.2009 12:51

Цитата:

Сообщение от SmanxX1
Именно! Но на UML, трудно показать показать действие какого-либо алгоритма, точнее не трудно, а менее инфомативно, скажем так, поэтому в отдельных случаях используются блок-схемы.

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

И:

1) За 5 лет я блок схемы не видел ни разу, ни в России ни за рубежом.
2) При поиске гуглом слова "блок-схема" ссылки только на школы, вузы и учебные языки а-ля Pascal, C++ Builder.

P.S.
Комментарий про школьника прошу убрать.

SmanxX1 19.04.2009 14:50

Цитата:

Сообщение от SmanxX1
Именно! Но на UML, трудно показать показать действие какого-либо алгоритма

Цитата:

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

Я тебя не понимаю, честно. -/
Ты сам себе противоречишь.
Цитата:

Сообщение от Qwazar
Блок-схемы для рисования какой нибудь конкретной процедуры.

Не обязательно.

Цитата:

1) За 5 лет я блок схемы не видел ни разу, ни в России ни за рубежом.
Да что ты заладил?! Раз не видел, значит не довелось еще.
В теме сказали, что они используются в "крупных" компаниях, я тоже поддерживаю это утверждение, а раз так, то очевидно с ними приходилось сталкиваться. Не просто так(из головы) же это написали. ;)

П.С. Предлагаю прекратить этот оффтоп.

Ch3ck 19.04.2009 15:22

Цитата:

П.С. Предлагаю прекратить этот оффтоп.
И нарисовать мне схему... :)

slesh 19.04.2009 15:35

2 Qwazar Как говорила моя преподша по програмированию - Блок схема - это голубиный(или птичий) язык. Блоксхема работы бота :-D :-D
А вообще я видел года 4 назад даже спец прожку для составления блок схем. Так что блок схемы еще живы и будут жить, пока будут жить совдеповские преподы и учебники по которым этому учат.

Qwazar 19.04.2009 15:37

Цитата:

Сообщение от SmanxX1
Да что ты заладил?! Раз не видел, значит не довелось еще.

Разницу между архитекутрой приложения, и конкретным алгоритмом реализованым в процедуре чувствуешь? (со всеми условными операторами, вызовами, объявлениями переменных, где после каждого CR и BF надо всё перерисовывать нафиг)
Цитата:

Сообщение от SmanxX1
В теме сказали, что они используются в "крупных" компаниях, я тоже поддерживаю это утверждение, а раз так, то очевидно с ними приходилось сталкиваться.

Мне приходилось. Их там не используют. Почему, я написал выше + то что можно реализовать в блок-схеме - проще просто закодить, а иначе это не блок-схема, а взрыв на макаронной фабрике.

Forcer 19.04.2009 18:18

SmanxX1
Зря ты так на Qwazar'a. Достаточно адекватный и уважаемый человек, если не считать того что оскарбления впринципе запрещены. Ну тебе в репе впринципе все сказали :)

Цитата:

Сообщение от Qwazar
В наше время во многих компаниях используются UML, но он на блок-схемы не похож. И тоже используется во многих компаниях только на этапе написания документации. (Видел только на одном проекте, да и то - требования заказчика). У UML кстати таже проблема - диаграммы надо всегда перерисовывать.

Ну так не везде на самом деле. У нас, например, активно используются диаграммы классов, последовательностей. Пишутся спецификации и рисуются диаграммы аналитикам, а потом передаются разработчикам. Если что, на моем проекте человек 100-120 работает(всего в фирме около 900) и у фирмы SW-CMM Level 3.

Цитата:

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

Да, так многие делают, в том числе и я.

Ch3ck
Извини за такой оффтоп).
Тоже пришла мысль попробовать что-то автоматическое найти.

Ch3ck 19.04.2009 19:10

Пробовал программы для автоматического построения(fceditor - который пишет Lexical error, Code Visual to Flowchart - создаёт все блоки схемы прямоугольными...и вообще какую-то хню. хотя...) (про 3-ю программу... не помню названия... начинается на auto по-моему)

SmanxX1 19.04.2009 19:45

Qwazar
Опять читаешь между строчек...
Ну да ладно, больше не собираюсь ничего объяснять.

Цитата:

Ну тебе в репе впринципе все сказали
Репа ничего не значит, особенно на этом форуме. ;)
Минусы поставили какое-то ламье, которое вообще не в теме(во всех смыслах). xD

St0nX 19.04.2009 20:41

http://fmi.asf.ru/library/book/Gost/19-002-80-82.html

Alex056 24.04.2009 22:22

Помогите кто может!!!
№1 Вычислить все значения функции ф=корень из x квадрат + y квадратесли х и у это значения элементов массива х(n) и у(m)
№2 определить количество положительных и отрицательных элементов в массиве х(n)
№3 в массиве A(n,m) определить:
а)максимальный и минимальный элементы
б)номер последнего отрицательного
в)заменить последний отрицательный элемент на минимальный
№4в массиве A(n,m) найти разность между суммой элементов во 2 строке и суммой элементов в 5 столбце.
Пожалуста!!! Просто очень нужно!

De-visible 25.04.2009 07:38

ЗЫ: За 50 - 70, баксов сделаю все за полтора часа.
Чек не воспринимай все близко к сердцу), но я серьезно)

Harry Potter 25.04.2009 14:31

Цитата:

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

Блок схемы являются клевым моментом при разработке программного обеспечения. Это заставляет разработчиков мыслить шире. Разделяя проект на части, условно зависимыми друг от друга. Данная техника облегчает весь процесс разработки.

De-visible 28.04.2009 22:56

Цитата:

Сообщение от Harry Potter
Блок схемы являются клевым моментом при разработке программного обеспечения. Это заставляет разработчиков мыслить шире. Разделяя проект на части, условно зависимыми друг от друга. Данная техника облегчает весь процесс разработки.

Блок схема у программиста, при выполнении задачи, строится в голове...

Qwazar 04.05.2009 12:51

Вернусь к старой теме (подтверждая то о чём постом выше писал De-visible), хочу привести цитату одного из известных архитекторов/ПМ:

Цитата:

- ... Вот тебе свежая, актуальная диаграмма. Какой смысл тратить усилия на
документирование того, что устаревает за год, и может быть в любой момент восстановлено за пару минут? Если она тебе сильно поможет, я сейчас ее тебе распечатаю. Распечатать?
- Да нет, пожалуй, - задумчиво отвечает коллега, рассматривая диаграмму. Ясности она не добавляла.
- Вот. Диаграммы не стоят ничего, ценны мыслительные процессы, происходящие у тебя в голове в процессе их составления. Поэтому я и говорю: код – лучшая документация. Читай код.
Всем кому интересно, рекомендую почитать: http://gaperton.livejournal.com/32772.html

procedure 04.05.2009 15:18

Отойдя от темы блок схем, хотелось бы с вами поговорить на тему как такового процесса создания приложений. Представим что перед нами стоит задача, создать интерактивное веб приложение, которое будет осуществлять мониторинг действий пользователей данного веб приложения. При просмотре мультимедийных материалов приложение должно фиксировать факт данного события и дополнительные параметры.

Представим что все описанное выше является техническим заданием. В соответствии со стратегией проектирования интерактивных клиент-серверных приложений, проектировочная комманда придерживающиеся правил SSD (Solution Deployment Descriptor)
Цитата:

Сообщение от http://en.wikipedia.org/wiki/SDD
(SDD) is a standard XML-based schema defining a standardized way to express software installation characteristics required for lifecycle management in a multi-platform environment.

в первую очередь приступит к реализации концептуального проектирования (в стадии разработки которого входит: анализ требований клиента, бизнес-сценарий реализующий мост между клиентом и разработчиком). Вот на этом моменте мы и вернемся к теме блок-схем. В соответствии со стандартом SSD в бизнес-сценарий входят из множества эти 2 пункта:
- блок-схема нахождения оборудования (не обязательно)
- блок-схема поочередного выполнения бизнес-процессов
В соответствии с этим, можно сделать вывод:

Каждый разработчик должен ярко представлять реализуемую им часть работы. Иными словами разработчик должен понимать требования от него в данном проекте. При этом сертифицированный разработчик, должен понимать все технические обозначения и тонкие аспекты блок-схем. При этом проектная комманда обязана в должном соответствии составлять блок-схемы. Которые могут быть основаны на шаблонах проектирования, так же как и документация основанная на повторном использовании документов.
По окончанию разработки, практически все аутсорсинговые компании складывают техническую документацию и блок схемы в архив, для будущего применения в виде шаблонов.
Цитата:

хочу привести цитату одного из известных архитекторов/ПМ:
В данном случае, этот архитектор вероятней всего не знал о шаблонном проектировании многих начиная от мелких, заканчивая мировыми лидерами IT.

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

Qwazar если ты до сих пор думаешь о блок-схемах так же как раньше. То мне тебя жаль и спор продолжать в теме не буду.

Qwazar 04.05.2009 18:48

procedure, ты тёплое с мягким не путай. Я говорил о блок-схемах в том ключе, в котором началася этот топик. А ты пишешь о бизнес-процессах.

procedure 04.05.2009 18:57

Уважаемый, это ты что перепутал.
Цитата:

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

Бизнес-процесс неотъемлемая часть любого серьезного приложения. Именно в блок-схемах/документированном виде/и.т.д. проектировочная комманда осуществляет представление разработчикам.

Цитата:

А ты пишешь о бизнес-процессах.
Если бы ты был немного внимательней, ты бы понял, - что я пишу о концептуальном программировании. Если тебе это о чем нибудь говорит.

Qwazar 04.05.2009 19:07

procedure, прошу не лицемерить, я видел твой коммент у меня в репке.

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

procedure 04.05.2009 19:17

Цитата:

procedure, прошу не лицемерить, я видел твой коммент у меня в репке.
Вот тут ты проявил свою внимательность получше. Жаль, что не там где надо.

Цитата:

Я говорю блин, что я говорю об использовании блоксхем при написании приложений конечным программистом, а ты о чёмто другом.
Я тебе объясняю что одним из этапов разработки приложения, является концептуальная разработка, в которую входит составление блок-схем. Которые в свою очередь передаются комманде разработчиков и документацией к проекту.

p.s. читай SDD и не спорь на банальные вещи. Тем более со мной не советую на подобные темы спорить. Я этому посвятил достаточно времени, чтобы быть уверенным в своих словах.

Qwazar 04.05.2009 19:22

procedure, блин, ну спасибо что объяснил мне, как работают команды программистов. Если ты всё таки почитаешь всё то, что написано выше, у тебя есть шанс понять, что речь идёт не о использовании блок-схем в бизнес процессах, а об использовании блок-схем при разработке.

procedure 04.05.2009 19:29

Qwazar я не знаю это идиоту понятно. Но тебе нет.

Бизнес-процессы являются частью концептуальной разработки! Что непосредственно является частью разработки приложений.

Qwazar ты лошара какой то, какой из тебя разработчик. Я уже который раз замечаю за тобой такие тупые прогоны. Пытаешься показать себя за умника "Блок-схемы - это фигня" не зная таких простых вещей как концептуальная разработка.

Qwazar 04.05.2009 19:35

procedure, ладно, объясняю как ребёнку: Ты говоришь о проектировании и о планировании, я говорю об последнем этапе, когда сидит один конкретный программист и пишет конкретный функционал. Вот на этом этапе никто не рисует блок-схемы, и если бы ты прочитал первые посты темы, то понял бы что речь как раз об этих блок схемах и идёт. И если бы ты постарался понять что я писал выше, то понял бы что я утверждаю, что эти блок-схемы никто не рисует, т.к. гораздо быстрее написать всё в коде, после обдумывания. Слишком мелкий уровень для рисования формальных диаграмм.

А ты переводишь тему и талдычишь о проектировании/планировании не переставая.

procedure 04.05.2009 19:42

Цитата:

Ты говоришь о проектировании и о планировании
Я говорю непосредственно о всех этапах разработки в целом.
Цитата:

Слишком мелкий уровень для рисования формальных диаграмм.
Ты выше писал, что никто не рисует блок-схемы кроме "придурошных" преподов и студентов. Сейчас ты намекаешь, что на крупных проектах рисуют. Так если рисуют, то эта была бы неплохая практика для ТС. И соответственно твой совет был не правильным.
Цитата:

я говорю об последнем этапе, когда сидит один конкретный программист и пишет конкретный функционал
А этот функционал он берет не из головы, а из блок-схем/документации.
Один программист? wtf?
Цитата:

Вот на этом этапе никто не рисует блок-схемы
Значит на других рисуют?
Ну а на*** тебе нужно было говорить что блок-схемы не нужны?

Qwazar 04.05.2009 19:47

Цитата:

А этот функционал он берет не из головы, а из блок-схем/документации.
Один программист? wtf?
Не ну может ты знаешь конторы, где тебе вплоть до if then else нарисованные картинки выдают. Я писал выше что я не имею в виду диаграммы классов, компонентов и т.п.

В общем, ты меня не понял, я тебе объяснить больше ничего не буду, т.к. вести себя ты не умеешь, и говорить без оскорблений тоже. Жду когда тебя забанят за оскорбления.

procedure 04.05.2009 19:59

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


Время: 09:39