Перейти к содержанию

Gennadiusisus

Пользователи
  • Постов

    39
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Gennadiusisus

  1. http://e-maxx.ru/algo/

    вот если понимаешь найдёшь алгоритм, поменяешь маленько )

    1)Сначала же нам нужно дойти до С, вопрос - можно ли идя до С пройти через В, и потом по другим дорогам вернутся в В ?

    Или дошли до С, потом через А дошли до В

    Если нет, то это вроде простой поиск в глубину(в ширину), до В, с хранением дополнительной метки, заходили ли мы в С - полный перебор )

    2)какие ограничения на задачу - количество рёбер, вершин ?

    3)И конечно в мире существует только один язык программирования ))

    Где такие задачи задают ? И много ли ?

    Каждую дорогу можно проехать один раз, то есть, если есть несколько путей из "А" в "С", то нужно выбрать тот, который не препятствовал бы дальнейшему переходу в "В"

    Ограничений больше нету...вроде...=)

    Пишу на С++

    У первочей в техноложке курсачи такие...не удержался что бы не попробовать запрогать =)

    Добавлено спустя 24 минуты 21 секунду:

    1)Предполагаю что в одну вершину могут вести как входящие в город так и выходящие из него) так что в каком то случае возможен вариант возвращения в города по нескольку раз :)

    2) представляю облом если будет миллион вершин и изолированный город B, а бедная программулька все будет искать и искать))

    3)assembler :) гг

    Хорошие задачки)) мозги так и радуются))

    ассемблер зло, фу фу фу...=]

    а задачка и правда интересная =) и готовых алгоритмов под нее нету (не нашел по крайней мере)

  2. Помогите алгоритмизировать задачу! Нужно написать программу способную определить, можно ли в заданной системе односторонних дорог проехать из города А в город В таким образом, чтобы посетить город С и не проезжать никакой дороги более одного раза.

    Заранее спасибо =)

  3. Приходите на встречу сегодня (16.10.2011) (Воскресенье) в 17:00!!!

    Встреча состоится на спортивной площадке колледжа №12 (что расположен возле призывного). Доехать можно на маршрутах 15,17,21,24,25,33,36,37,44,56,57,63,64,70,71,77,90,91,97,100 до остановки Призывной в 43 кв. От остановки сразу будет видно это площадку, она около перекрёстка.

    Добавлено спустя 49 секунд:

    Hohol1989

    бывает(

  4. Приходите на встречу 25.09.2011 (Воскресенье) в 17:00!!!

    Встреча состоится на спортивной площадке колледжа №12 (что расположен возле призывного). Доехать можно на маршрутах 15,17,21,24,25,33,36,37,44,56,57,63,64,70,71,77,90,91,97,100 до остановки Призывной в 43 кв. От остановки сразу будет видно это площадку, она около перекрёстка.

  5. Приходите на встречу 04.09.2011 в 17:00!!!

    Спортивная площадка колледжа №12 (что расположен возле призывного). Доехать можно на маршрутах 15,17,21,24,25,33,36,37,44,56,57,63,64,70,71,77,90,91,97,100 до остановки Призывной в 43 кв. От остановки сразу будет видно это площадку, она около перекрёстка.

  6. ну есть основной цикл, в котором предоставляется выбор действий:

    for(;

    ;){

    printf("для добавления записи нижмите 1\n для поска и вывода последней детали 2\n для поиска и вывода деталей со знаком качества 3\n для вывода всех деталей 4\n для выхода 0\n");

    scanf("%i",&i);

    switch (i)

    {

    case 1: add(f);break;

    case 2: last(f);break;

    case 3: good(f);break;

    case 4: disp(f);break;

    case 0: exit(0);break;

    default: printf("!!Ошибка!!");

    };

    }

    функция записи структуры в файл:

    void add(FILE *a){

    struct DETAL op;

    printf ("\nВведите номер\n");

    scanf ("%i", &op.number);

    printf ("Введите вес\n");

    scanf ("%f", &op.wes);

    printf ("Введите цену\n");

    scanf ("%f", &op.cost);

    printf ("Введите дату производства\n");

    scanf ("%i %i %i", &op.data[0], &op.data[1], &op.data[2]);

    printf ("Введите статус\n");

    scanf ("%i", &op.status);

    printf ("Введите объем\n");

    scanf ("%i", &op.volume);

    fwrite(&op, sizeof(struct DETAL), 1, a);

    }

    лично моё мнение, что вся проблема со чтением из файла..

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

    #include

    #include

    #include "iostream"

    struct DETAL{

    int number;

    float wes;

    float cost;

    int data[3];

    int status;

    int volume;

    };

    void add(FILE *a);

    void last(FILE *f);

    void vivlast(void);

    void good(FILE *f);

    void disp(FILE *e);

    void main (){

    setlocale (0, "");

    int i,j;

    struct DETAL detal;

    FILE *f,*g,*h;

    printf("для создания нового файла нажмите 1, для использования готового 2\n");

    scanf("%i",&j);

    switch(j){

    case 1: f=fopen("info.txt","w+");break;

    case 2: f=fopen("info.txt","a+");break;

    default: printf("!Ошибка!");

    };

    for(;;){

    printf("для добавления записи нижмите 1\n для поска и вывода последней детали 2\n для поиска и вывода деталей со знаком качества 3\n для вывода всех деталей 4\n для выхода 0\n");

    scanf("%i",&i);

    switch (i)

    {

    case 1: add(f);break;

    case 2: last(f);break;

    case 3: good(f);break;

    case 4: disp(f);break;

    case 0: exit(0);break;

    default: printf("!!Ошибка!!");

    };

    }

    getch();}

    void add(FILE *a){

    struct DETAL op;

    printf ("\nВведите номер\n");

    scanf ("%i", &op.number);

    printf ("Введите вес\n");

    scanf ("%f", &op.wes);

    printf ("Введите цену\n");

    scanf ("%f", &op.cost);

    printf ("Введите дату производства\n");

    scanf ("%i %i %i", &op.data[0], &op.data[1], &op.data[2]);

    printf ("Введите статус\n");

    scanf ("%i", &op.status);

    printf ("Введите объем\n");

    scanf ("%i", &op.volume);

    fwrite(&op, sizeof(struct DETAL), 1, a);

    }

    void last(FILE *f){

    struct DETAL s,detal;

    int max0=0,max1=0,max2=0;

    FILE *o;

    o=fopen("Last.txt","w+");

    rewind(f);

    while(!feof(f)){

    fread(&detal, sizeof(struct DETAL), 1, f);

    if (detal.data[2]>max2)

    {

    max2=detal.data[2];

    max1=detal.data[1];

    max0=detal.data[0];

    s=detal;

    }

    else

    if (detal.data[2]==max2)

    if (detal.data[1]>max1)

    {

    max1=detal.data[1];

    max0=detal.data[0];

    s=detal;

    }

    else if (detal.data[1]==max1)

    if(detal.data[0]>max0)

    {

    max0=detal.data[0];

    s=detal;

    }

    }

    printf(" \n \n");

    printf ("Номер: %i\n", s.number);

    printf ("Обьем: %i\n", s.volume);

    printf ("Цена: %f\n", s.cost);

    fwrite(&s, sizeof(struct DETAL), 1, o);

    fclose(o);

    }

    /*void vivlast(void){

    struct DETAL op;

    FILE *d=fopen("Last.txt","r");

    fread(&op,sizeof(struct DETAL), 1, d);

    printf("Постедняя по дате деталь: \n");

    printf ("%i ", op.number);

    printf ("%f ", op.wes);

    printf ("%f ", op.cost);

    printf ("%i %i %i ", op.data[0], op.data[1], op.data[2]);

    printf("%i ", op.status);

    printf ("%i ", op.volume);

    fclose(d);

    }*/

    void good(FILE *f)

    {

    struct DETAL detal;

    FILE *u=fopen("Good.txt","w+");

    rewind(f);

    while(!feof(f))

    {

    fread(&detal, sizeof(struct DETAL), 1, f);

    if(detal.status==1)

    {

    fwrite(&detal, sizeof(struct DETAL), 1, u);

    }}

    rewind(u);

    while(!feof(u)){

    fread(&detal, sizeof(struct DETAL), 1, u);

    printf("Детали имеющие знак качества: \n");

    printf ("%i ", detal.number);

    printf("%f ",detal.wes);

    printf("%f ", detal.cost);

    printf("%i %i %i ", detal.data[0], detal.data[1], detal.data[2]);

    printf("%i ", detal.status);

    printf("%i ", detal.volume);

    printf("\n\n");

    }}

    void disp(FILE *e){

    struct DETAL detal;

    rewind(e);

    printf("\n");

    while(!feof(e)){

    fread(&detal, sizeof(struct DETAL), 1, e);

    printf("Все имеющиеся детали: \n");

    printf ("%i ", detal.number);

    printf("%f ",detal.wes);

    printf("%f ", detal.cost);

    printf("%i %i %i ", detal.data[0], detal.data[1], detal.data[2]);

    printf("%i ", detal.status);

    printf("%i ", detal.volume);

    printf("\n");

    }}

×
×
  • Создать...