Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

23.12.2009, 21:18
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
а что хранит класс экзамен ?
Разделение ведомости на ведомость и стока ведомости по абстракции конечно правильней но кому нужна такая детализация ?
Притом исходя из условия то челу нужно всего два класса. Как ты сказал конечно правильней, я просто адаптировал под условия
Последний раз редактировалось cupper; 23.12.2009 в 21:20..
|
|
|

23.12.2009, 21:24
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
предмет, по которому принимался экзамен, т.е. в данном случае просто название.
а на счет детализации - это не детализация. вот у тебя класс ведомости. как ты будешь хранить список студентов с оценками? std::map? надеюсь не надо объяснять, что даже в такой задаче такое решение совсем уж глупое. ты создашь класс, который будет храниться в контейнере, в том же векторе. т.е. придешь все к той же строке ведомости =) подскажу, что разделение журнала на строки - это просто бородатая классика проектирования, и ниче лучше пока не придумано.
|
|
|

23.12.2009, 21:30
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
Сообщение от Ra$cal
предмет, по которому принимался экзамен, т.е. в данном случае просто название.
std::map? надеюсь не надо объяснять, что даже в такой задаче такое решение совсем уж глупое.
ты видно мало глупостей видел )))
моя логика - студенческая, и я этим не горжусь (
|
|
|

23.12.2009, 21:34
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
не, я достаточно видел, поэтому и рекомендую сразу пытаца минимизировать их число, ибо привычка дело злое =)
|
|
|

23.12.2009, 21:51
|
|
Новичок
Регистрация: 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;
}
|
|
|

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

24.12.2009, 02:09
|
|
Новичок
Регистрация: 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
|
|
|

24.12.2009, 15:09
|
|
Новичок
Регистрация: 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..
|
|
|

24.12.2009, 16:38
|
|
Новичок
Регистрация: 15.12.2009
Сообщений: 1
Провел на форуме: 2512
Репутация:
0
|
|
помогите плиииз! написать программу на паскале:
упорядочить матрицу А[6,6] по элементам третьей строки.
|
|
|

24.12.2009, 19:30
|
|
Новичок
Регистрация: 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);
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|