Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> блок схема, не пойму в чем ошибка блок схемы 
:(
    Опции темы
ess399
Дата 21.11.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



не пойму в чем ошибка блок схемы 
код:#include<string.h>
#include<conio.h>
#include<stdio.h>
#include <ctype.h>
 
struct STUDENT
{
char kafedra[20],famil[20],spec[20];
int ocenka;
};
int main()
{
int n,i,j,s, count; char c;
struct STUDENT arr[10];
struct STUDENT temp;

i=0;
while(c!='N')
{
puts("Vvesti dannue pro studenta(Y/N)");
scanf("%s",&c); if (tolower©=='n') {break;}
 
printf("Vvedite famil %u stud-",i+1);
scanf("%s",&arr[i].famil);
 
printf("Vvedite kafedru %u stud-",i+1);
scanf("%s",&arr[i].kafedra);
 
printf("Vvedite ocenku %u stud-",i+1);
scanf("%d",&arr[i].ocenka);
 
printf("%s,%s,%d\n",arr[i].famil,arr[i].kafedra,arr[i].ocenka);
 
i=i+1;
printf("%d\n",i);}
n=i;
// ñîðòèðîâêà
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
{
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1)
        {
                i++;
                j++;
        }
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n)
        {
                temp=arr[i+1];
                arr[i+1]=arr[j];
                arr[j]=temp;
                i++;
        }
}
s=0;
count=0;
printf("Kafedra: %s\n", arr[0].kafedra);
 
for(i=0; i<n; i++)
{
                printf("%s\n", arr[i].famil);
                count++;
                s+=arr[i].ocenka;
        if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1)
        {
                printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count);
                printf("Kafedra: %s\n", arr[i+1].kafedra);      
                s=0;
                count=0;
        }
 
}
                printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count);
        
getch();








                                           
                                                                                                 

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  blok_shema.rar 10,60 Kb
PM MAIL   Вверх
null56
Дата 21.11.2009, 18:32 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: нет
Всего: 12



Код

#include <stdio.h>
int main()
{
    printf("Попробуй воспользоваться тегом CODE\n");
    return 0;
}

PM MAIL   Вверх
Luyan
Дата 21.11.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Цитата(ess399 @  21.11.2009,  18:26 Найти цитируемый пост)
if (tolower©=='n') {break;}

 smile  все права защищены

tolower - что это?, там должна быть с
попробуйте так:
Код

do
{
        printf("Vvedite famil %u stud-", i+1);
        scanf("%s",&arr[i].famil);
 
        printf("Vvedite kafedru %u stud-", i+1);
        scanf("%s",&arr[i].kafedra);
 
        printf("Vvedite ocenku %u stud-", i+1);
        scanf("%d",&arr[i].ocenka);
 
        printf("%s,%s,%d\n", arr[i].famil, arr[i].kafedra, arr[i].ocenka);
 
        i=i+1;
        printf("%d\n",i);

        puts("Vvesti dannue pro studenta(Y/N)");
        scanf("%s",&c);
}while ( (c != 'n' ) && (c != 'N') );

и функция у вас int main() - поэтому поставьте в конце return 0;

Это сообщение отредактировал(а) Luyan - 21.11.2009, 22:06
PM   Вверх
mes
Дата 21.11.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Luyan @  21.11.2009,  21:02 Найти цитируемый пост)
©..что это?,

это особенность форума заменять в тексте (с) на ©. кстати это тоже одна из причин для оформления тегами кода.


--------------------
PM MAIL WWW   Вверх
ess399
Дата 22.11.2009, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



код то рабочий, блок схема алгоритма составлена неверно ,преподователь сказал ,только незнаю почему ,помоему схема составлена нормально.
PM MAIL   Вверх
mes
Дата 22.11.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ess399 @  22.11.2009,  03:49 Найти цитируемый пост)
код то рабочий, блок схема алгоритма составлена неверно ,преподователь сказал ,только незнаю почему ,помоему схема составлена нормально. 

ну если Вы игнорируете замечания 
Цитата(null56 @  21.11.2009,  17:32 Найти цитируемый пост)
Попробуй воспользоваться тегом CODE

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

К тому же еще и суть вопроса не ясна..

P.S. файл аттача (.docx) у меня не открывается.. может переведете в более распространенный формат ?



Это сообщение отредактировал(а) mes - 22.11.2009, 12:45


--------------------
PM MAIL WWW   Вверх
Luyan
Дата 22.11.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Цитата(mes @  22.11.2009,  12:37 Найти цитируемый пост)
P.S. файл аттача (.docx) у меня не открывается.. может переведете в более распространенный формат ?



Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  blok.jpg 161,28 Kb
PM   Вверх
mes
Дата 22.11.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Luyan, спасибо за конвертацию.
ess399, в коде программы явно виден ввод и вывод.. а в блок-схеме отсутствуют соответствующие элементы..
К тому же элементам "процесс" не соответствует их функциональность. Вот к примеру что за процесс "сортированный список" ?






--------------------
PM MAIL WWW   Вверх
ess399
Дата 22.11.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



#include<string.h>
#include<conio.h>
#include<stdio.h>
#include <ctype.h>
 
struct STUDENT
{
char kafedra[20],famil[20],spec[20];
int ocenka;
};
int main()
{
int n,i,j,s, count; char c;
struct STUDENT arr[10];
struct STUDENT temp;

i=0;
do
{
        printf("Vvedite famil %u stud-", i+1);
        scanf("%s",&arr[i].famil);
 
        printf("Vvedite kafedru %u stud-", i+1);
        scanf("%s",&arr[i].kafedra);
 
        printf("Vvedite ocenku %u stud-", i+1);
        scanf("%d",&arr[i].ocenka);
 
        printf("%s,%s,%d\n", arr[i].famil, arr[i].kafedra, arr[i].ocenka);
 
        i=i+1;
        printf("%d\n",i);
        puts("Vvesti dannue pro studenta(Y/N)");
        scanf("%s",&c);
}while ( (c != 'n' ) && (c != 'N') );
n=i;
// sortirovka
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
{
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1)
        {
                i++;
                j++;
        }
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n)
        {
                temp=arr[i+1];
                arr[i+1]=arr[j];
                arr[j]=temp;
                i++;
        }
}
s=0;
count=0;
printf("Kafedra: %s\n", arr[0].kafedra);
 
for(i=0; i<n; i++)
{
                printf("%s\n", arr[i].famil);
                count++;
                s+=arr[i].ocenka;
        if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1)
        {
                printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count);
                printf("Kafedra: %s\n", arr[i+1].kafedra);      
                s=0;
                count=0;
        }
 
}
                printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count);
        
getch();
return 0;


что то я вообще запутался 
PM MAIL   Вверх
Luyan
Дата 22.11.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



Цитата(ess399 @  22.11.2009,  15:48 Найти цитируемый пост)
что то я вообще запутался

что именно не понятно? в блок схеме есть условие "показать весь список", в программе у вас его нет. И почему элемент "весь список" вы отправляете снова в начало программы?
do - while я предложил для того, чтобы данные вводились, по крайней мере, один раз и список не был бы пуст. У вас же нет проверки выводить или не выводить пустой список.
PM   Вверх
ess399
Дата 22.11.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



вот что получилось

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  __________.rar 49,24 Kb
PM MAIL   Вверх
mes
Дата 22.11.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ess399 @  22.11.2009,  16:26 Найти цитируемый пост)
вот что получилось 

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


P.S. мелочь, но в "условиях" (ромбах) желательно ставить вопрос.

Добавлено через 3 минуты и 50 секунд
ess399, когда Вы все таки начнете оформлять код иотредактируете предыдущие записи ?

Добавлено через 7 минут и 27 секунд
Цитата(ess399 @  22.11.2009,  14:48 Найти цитируемый пост)
// sortirovka

Поломав глаза, все таки глянул в код.. И где ж у Вас условие указанное в блок схеме как "Сортировать список..." ? smile

Добавлено через 8 минут и 23 секунды
Вобщем вот Вам http://ru.wikipedia.org/wiki/%D0%91%D0%BB%...%B5%D0%BC%D0%B0
информации на этой странице достаточно, чтоб сдеалать Ваше задание.



--------------------
PM MAIL WWW   Вверх
ess399
Дата 22.11.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



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

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ___________2.rar 83,03 Kb
PM MAIL   Вверх
mes
Дата 22.11.2009, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ess399 @  22.11.2009,  20:01 Найти цитируемый пост)
да и преподователь ничему неучит а требует. 

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

почему у вас не от условий идут две стрелки ? 
где блоки сортировки, например где блоки цикла ?
почему "закрыть программу" у Вас в блоке вывода ?
где меню в коде ?


Цитата(ess399 @  22.11.2009,  20:01 Найти цитируемый пост)
я недавно только учить программирование начал

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

Добавлено через 8 минут и 17 секунд
Цитата(ess399 @  22.11.2009,  03:49 Найти цитируемый пост)
код то рабочий

Цитата(ess399 @  22.11.2009,  14:48 Найти цитируемый пост)
}while ( (c != 'n' ) && (c != 'N') );

у Вас нет ограничения на кол-во вводимых студентов - хотя массив ограничен.


Цитата(ess399 @  22.11.2009,  14:48 Найти цитируемый пост)
struct STUDENT temp;

лучше использовать функцию swap..


Цитата(ess399 @  22.11.2009,  14:48 Найти цитируемый пост)
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1)
        {
                i++;
                j++;
        }
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n)
        {

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



--------------------
PM MAIL WWW   Вверх
ess399
Дата 22.11.2009, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



код конечно не я ,мне еще тяжело в етом,  просто похожий нашел в инете.
PM MAIL   Вверх
mes
Дата 22.11.2009, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ess399 @  22.11.2009,  21:15 Найти цитируемый пост)
код конечно не я ,мне еще тяжело в етом,  просто похожий нашел в инете. 

ну тогда Вам прежде всего надо разобраться что происходит в коде, а уж потом составлять схему..
Хотя пожалуй Вы полагаете, что все напишут за Вас - тогда Вы запостили не в том разделе, Вам требуется
Vingrad - Колледж/Центр помощи. 
Прямую ссылку давать не буду, ищите, удачи smile



--------------------
PM MAIL WWW   Вверх
Luyan
Дата 23.11.2009, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 3.12.2008

Репутация: 2
Всего: 7



добавьте ещё защиту, на адекватный ввод оценок, а то у вас оценки можно вводить даже отрицательные
Код

do
{
    printf("Vvedite famil %u stud-", i+1);
    scanf("%s",&arr[i].famil);

    printf("Vvedite kafedru %u stud-", i+1);
    scanf("%s",&arr[i].kafedra);

    printf("Vvedite ocenku %u stud-", i+1);
    scanf("%d",&arr[i].ocenka);

    //************************************
    while( (arr[i].ocenka<1) || (arr[i].ocenka>5) )
    {
        scanf("%d",&arr[i].ocenka);
    }
    //************************************

    printf("%s,%s,%d\n", arr[i].famil, arr[i].kafedra, arr[i].ocenka);
 
    i=i+1;

    printf("%d\n",i);
    puts("Vvesti dannue pro studenta(Y/N)");
    scanf("%s",&c);
}while ( (c != 'n' ) && (c != 'N') );


PM   Вверх
ess399
Дата 23.11.2009, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 18.11.2009

Репутация: -1
Всего: -2



спасибо с кодом ,исправил ошибки, буду дальше думать в составлении схемы.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.