ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2081  
Старый 23.12.2009, 21:18
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

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

Последний раз редактировалось cupper; 23.12.2009 в 21:20..
 
Ответить с цитированием

  #2082  
Старый 23.12.2009, 21:24
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

предмет, по которому принимался экзамен, т.е. в данном случае просто название.
а на счет детализации - это не детализация. вот у тебя класс ведомости. как ты будешь хранить список студентов с оценками? std::map? надеюсь не надо объяснять, что даже в такой задаче такое решение совсем уж глупое. ты создашь класс, который будет храниться в контейнере, в том же векторе. т.е. придешь все к той же строке ведомости =) подскажу, что разделение журнала на строки - это просто бородатая классика проектирования, и ниче лучше пока не придумано.
 
Ответить с цитированием

  #2083  
Старый 23.12.2009, 21:30
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Цитата:
Сообщение от Ra$cal  
предмет, по которому принимался экзамен, т.е. в данном случае просто название.
std::map? надеюсь не надо объяснять, что даже в такой задаче такое решение совсем уж глупое.
ты видно мало глупостей видел )))
моя логика - студенческая, и я этим не горжусь (
 
Ответить с цитированием

  #2084  
Старый 23.12.2009, 21:34
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

не, я достаточно видел, поэтому и рекомендую сразу пытаца минимизировать их число, ибо привычка дело злое =)
 
Ответить с цитированием

  #2085  
Старый 23.12.2009, 21:51
Semus
Новичок
Регистрация: 27.03.2009
Сообщений: 12
Провел на форуме:
17616

Репутация: 0
По умолчанию

Цитата:
Сообщение от Trotter  
я конечно не совсем силён и могу ошибаться, но тебе надо выделять память...
типо вместо char * stroka писать char * stroka new char[256];
и чтобы вот такова бреда не было printf ("kolichestvo vhogdenii)
подрубай locale.h и в main(){setlocale(LC_ALL, "RUSSIAN"); код... printf("Привет")}
а по поводу выделения памяти я не знаю как на си сделать malloc юзай хотя у меня так заработало как первый раз писал тока вот цикл странный зацикленный какой то)) с циклом извиняй помочь не могу, и чтобы строку к строке прировнять надо по моемому перегрузку оператора сделать... хотя я дилетант тоже не ругайте меня ))
Верно подмечено, ты "не совсем силен" . Ты какой-то бред несешь: "память выделять", "перегрузку операторов делать ". И не нужно подрубать "locale.h", и прочее что ты там написал. Все решилось проще и самостоятельно через пол часа после появления поста:

Код:
//Задание №1
//определяем число вхождений введеного //пользователем слова в введеную пользователем строку

# include <stdio.h>
# include <stdlib.h>
# include <string.h>

int main ()
{
    char stroka[300]; //данный массив предназначен для хранения введеной пользоватлем строки, объем до 300символов
    char * pStr = stroka; //этот указатель используется для поиска данных, ему дается адрес первого элемента

    //вводим строку из которой осуществляем поиск
    printf ("Vvedite stroku: "); //просим пользователя ввести строку
    gets (stroka); //пользователь вводит строку

    // вводим строку которую будем искать
    char iskStroka[300]; //массив предназначенный для хранения искомой строки
    char * iskom = iskStroka; //этот указатель используется для поиска и подсчета числа вхождения подстрок в строку

    //вводим искомую подстроку
    printf ("Vvedite iskomuy slovo: "); //просим пользователя ввести искомое слово
    scanf("%s", iskStroka);// ввод искомого слова

    char * point = 0;//указатель на на номер на найденый номер

    int i = 0;    // переменная - счетчик, используем для подсчета кол-ва вхождений подстроки в строку

    // следующий цикл обеспечивает подсчет вхождений подстроки в строку
    do //далее начинается вечный цикл с постусловие
    {
        point = strstr(pStr, iskom);//ищем позицию вхождения подстроки в строку
        pStr=point+1;                     //при помощи указателя как-бы обрезаем длинну строки,
                                                    //что при следующем цикле осуществился поиск данных
                                                    //с позиции найденой строки+1.
                                                    //Если не поставить "+1" цикл будет бесконечен, так как постоянно
                                                    //будет находиться первое вхождение с которого теперь начинается адрес поискового указателя pStr

        if (point==NULL) {break;}; //если на очередном шаге не было найдено вхождения - прерываем цикл
        i++;
    }
    while (true);//цикл вечен, если его не прервать

    //закончили подсчет вхождений строки в подстроку

    printf ("kolichestvo vhogdenii = %d\n", i);// выводим результат на экран

    system ("PAUSE"); //ждем от пользователя нажатия какой-либо клавиши
    return 0;
}
 
Ответить с цитированием

  #2086  
Старый 24.12.2009, 01:49
elusive.light
Новичок
Регистрация: 29.11.2009
Сообщений: 4
Провел на форуме:
13349

Репутация: 0
По умолчанию

3. В киоске продается растворимый кофе, предлагается ассортимент из трех известных кофейных торговых марок (названия на ваш выбор), а также варианты приготовления – полный стакан / половина стакана, от 0 до 2 ложек сахара. Сделайте объявление структуры данных, моделирующей заказ кофе. При этом для кода торговой марки обязательно применить конструкцию enum, а информацию о количестве воды и ложек сахара следует запаковать при помощи битовых полей в один байт. Нужно составить тестовую программу, использующую такую структуру.
 
Ответить с цитированием

  #2087  
Старый 24.12.2009, 02:09
elusive.light
Новичок
Регистрация: 29.11.2009
Сообщений: 4
Провел на форуме:
13349

Репутация: 0
По умолчанию

Есть еще прога, но она не из лёгких, и я заранее благодорю любого, кто хоть чем-то поможет

Имеется структура данных DynamicArray для динамического массива целых чисел.
Код:
struct DynamicArray 
{ /* Память для хранения значений массива */ 
      int* m_ArrayData;  
   /* Объем выделенной памяти (в ячейках массива) */ 
      int m_ArrayCapacity; 
   /* Количество ячеек фактически занятых массивом */                                                    
      int m_ArrayCurrentSize; 
};
Динамический массив – это структура данных для хранения элементов в последовательности нефиксированного размера, которая самостоятельно следит за объемом выделенной памяти по мере добавления элементов. Динамический массив выделяет память с небольшим запасом для будущих элементов. Если места в массиве больше нет, а пользователь продолжает добавлять элементы в массив, то структура данных автоматически выделяет вдвое больший блок, чем было выделено ранее. Подобная идея лежит в основе популярного контейнера std::vector в C++. Разработайте следующие вспомогательные функции, а также тестовую программу, использующую функции (сначала идет прототип функции, а потом ее предназначение):
Код:
void DynamicArrayInit ( struct DynamicArray* _pArray, int _initialSize );
Инициализирует динамический массив – выделяет необходимый объем памяти. устанавливает занятый начальный размер, который не может быть отрицательным

Код:
void DynamicArrayDestroy ( struct DynamicArray* _pArray );
Освобождает память, занятую массивом

Код:
int DynamicArrayGetCellValue ( const struct DynamicArray* _pArray, int _cellIndex );
Возвращает текущее значение в интересующей ячейке. Индекс не может быть вне интервала [0 : m_ArrayCurrentSize - 1)

Код:
void DynamicArraySetCellValue ( struct DynamicArray* _pArray, int _cellIndex, int _newValue );
Устанавливает текущее значение в интересующей ячейке. Индекс не может быть вне интервала [0 : m_ArrayCurrentSize - 1)
Код:
void DynamicArrayPushBackValue ( struct DynamicArray* _pArray, int _newValue );
Добавляет новое значение в конец массива. Если зарезервированная память еще осталась, использует ее для хранения нового данного. Если больше резервов нет, выделяет вдвое больший блок, мигрирует данные из старого блока, освобождает старый блок, а новое значение дописывает в ячейке сразу после старых

Код:
void DynamicArrayPopBackValue ( struct DynamicArray* _pArray );
Освобождает массив от последнего записанного данного. Не допускается, чтобы массив был пуст на момент вызова операции

Код:
int DynamicArrayBack ( const struct DynamicArray* _pArray );
Возвращает последнее хранимое в массиве значение. Не допускается, чтобы массив был пуст на момент вызова операции

Код:
void DynamicArrayResize ( struct DynamicArray* _pArray, int _newSize );
Изменяет число занятых элементов в массиве. Если новый размер меньше или равен старому, изменение влияет лишь на счетчик внутри массива. Если же новый размер больше старого, потребуется выделение памяти аналогично алгоритму в функции DynamicArrayPushBackValue

Код:
void DynamicArrayReserve ( struct DynamicArray* _pArray, int _newCapacity );
Выполняет принудительное резервирование памяти для будущих элементов. Если новый размер резерва меньше или равен старому, вызов функции игнорируется. Если новый размер резерва больше старого, необходимо повторное выделение блока аналогично DynamicArrayPushBackValue
 
Ответить с цитированием

  #2088  
Старый 24.12.2009, 15:09
tester_on
Новичок
Регистрация: 04.12.2009
Сообщений: 3
Провел на форуме:
2722

Репутация: 0
По умолчанию

Помогите решить задачку из лабараторной по C++

Вычислить f=cos(2 в квадрате)x на отрезке [-2; 5] с шагом 0,15. Найти сумму всех f > a*2

Последний раз редактировалось tester_on; 24.12.2009 в 19:48..
 
Ответить с цитированием

  #2089  
Старый 24.12.2009, 16:38
Wesley
Новичок
Регистрация: 15.12.2009
Сообщений: 1
Провел на форуме:
2512

Репутация: 0
По умолчанию

помогите плиииз! написать программу на паскале:
упорядочить матрицу А[6,6] по элементам третьей строки.
 
Ответить с цитированием

  #2090  
Старый 24.12.2009, 19:30
Alexey2
Новичок
Регистрация: 30.05.2009
Сообщений: 12
Провел на форуме:
69608

Репутация: 0
По умолчанию

Помогите исправить ошибки..Нужно инвертировать матрицу относительно побочной диагонали... Язык c.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RND (rand()%100-50)

int vvod_hand(int strok, int stolb,int massiv[50][50])
{int i; int j;char buffer[100];
{for(i=1; i<=strok; i++)
{for(j=1; j<=stolb; j++) 
{printf("massiv[%d][%d]= ",i,j);
fgets(buffer,10,stdin);
massiv[i][j]=atoi(buffer);         
}}} 
}

int vvod_rand(int strok, int stolb,int massiv[50][50])
{int i; int j;
{for(i=1; i<=strok; i++)
for(j=1; j<=stolb; j++) 
massiv[i][j]=rand()%50;          
}    
}

int vivod(int strok, int stolb,int massiv[50][50])
{int i; int j;
    {for(i=1; i<=strok; i++)
{
{for(j=1; j<=stolb; j++) 
printf("%d ",massiv[i][j]);
}
printf("\n");}
}
}

main(int argc, char*argv[])
{int  a, b, i, x, kol_vo, strok, stolb, j, p;
 int massiv[50][50];
char buffer[100]; 

srand (time (NULL));

if (argc<3) 
{puts("programma vvivodit massiv");
puts("vvedite ./labor4 kol_vo strok kol_vo stolbcov sposob vvoda <klava/rand>");
}

strok=atoi(argv[1]);
if (strok<1 || strok>50) 
{puts("kol-vo strok >1 no <100");
getchar(); exit(0);}

stolb=atoi(argv[2]); 
if (stolb<1 || stolb>50) 
{puts("kol-vo stolbcov >1 no <100");
getchar(); exit(0);}

if(strcmp(argv[3], "klava")==0)
vvod_hand(strok,stolb,massiv);       
       
else                 
vvod_rand(strok,stolb,massiv);

printf("\n");
printf("Massiv: \n");
vivod(strok,stolb,massiv);



    //invertirovanie
    for(i=1;i<=strok/2;i++)
    {
        for(j=1;j<=stolb/2;j++)
        {
            if(j<stolb-i-1)//tolko elementy nad pobochnoy diagonalyu
                        
               
                massiv[i][j] = massiv[strok][stolb-j];//i menyaem
              
            
        }
    }
    //vyvodim na ekran
    printf("Inverted matrix: \n");
    for(i=1;i<=strok;i++)
    {
        for(j=1;j<=stolb;j++)
        {
            printf("%i  ",massiv[i][j]);
        }
        printf("\n");
    }
       
getchar();
exit(0);
      }
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ