3. В киоске продается растворимый кофе, предлагается ассортимент из трех известных кофейных торговых марок (названия на ваш выбор), а также варианты приготовления – полный стакан / половина стакана, от 0 до 2 ложек сахара. Сделайте объявление структуры данных, моделирующей заказ кофе. При этом для кода торговой марки обязательно применить конструкцию enum, а информацию о количестве воды и ложек сахара следует запаковать при помощи битовых полей в один байт. Нужно составить тестовую программу, использующую такую структуру.
Есть еще прога, но она не из лёгких, и я заранее благодорю любого, кто хоть чем-то поможет Имеется структура данных DynamicArray для динамического массива целых чисел. Code: struct DynamicArray { /* Память для хранения значений массива */ int* m_ArrayData; /* Объем выделенной памяти (в ячейках массива) */ int m_ArrayCapacity; /* Количество ячеек фактически занятых массивом */ int m_ArrayCurrentSize; }; Динамический массив – это структура данных для хранения элементов в последовательности нефиксированного размера, которая самостоятельно следит за объемом выделенной памяти по мере добавления элементов. Динамический массив выделяет память с небольшим запасом для будущих элементов. Если места в массиве больше нет, а пользователь продолжает добавлять элементы в массив, то структура данных автоматически выделяет вдвое больший блок, чем было выделено ранее. Подобная идея лежит в основе популярного контейнера std::vector в C++. Разработайте следующие вспомогательные функции, а также тестовую программу, использующую функции (сначала идет прототип функции, а потом ее предназначение): Code: void DynamicArrayInit ( struct DynamicArray* _pArray, int _initialSize ); Инициализирует динамический массив – выделяет необходимый объем памяти. устанавливает занятый начальный размер, который не может быть отрицательным Code: void DynamicArrayDestroy ( struct DynamicArray* _pArray ); Освобождает память, занятую массивом Code: int DynamicArrayGetCellValue ( const struct DynamicArray* _pArray, int _cellIndex ); Возвращает текущее значение в интересующей ячейке. Индекс не может быть вне интервала [0 : m_ArrayCurrentSize - 1) Code: void DynamicArraySetCellValue ( struct DynamicArray* _pArray, int _cellIndex, int _newValue ); Устанавливает текущее значение в интересующей ячейке. Индекс не может быть вне интервала [0 : m_ArrayCurrentSize - 1) Code: void DynamicArrayPushBackValue ( struct DynamicArray* _pArray, int _newValue ); Добавляет новое значение в конец массива. Если зарезервированная память еще осталась, использует ее для хранения нового данного. Если больше резервов нет, выделяет вдвое больший блок, мигрирует данные из старого блока, освобождает старый блок, а новое значение дописывает в ячейке сразу после старых Code: void DynamicArrayPopBackValue ( struct DynamicArray* _pArray ); Освобождает массив от последнего записанного данного. Не допускается, чтобы массив был пуст на момент вызова операции Code: int DynamicArrayBack ( const struct DynamicArray* _pArray ); Возвращает последнее хранимое в массиве значение. Не допускается, чтобы массив был пуст на момент вызова операции Code: void DynamicArrayResize ( struct DynamicArray* _pArray, int _newSize ); Изменяет число занятых элементов в массиве. Если новый размер меньше или равен старому, изменение влияет лишь на счетчик внутри массива. Если же новый размер больше старого, потребуется выделение памяти аналогично алгоритму в функции DynamicArrayPushBackValue Code: void DynamicArrayReserve ( struct DynamicArray* _pArray, int _newCapacity ); Выполняет принудительное резервирование памяти для будущих элементов. Если новый размер резерва меньше или равен старому, вызов функции игнорируется. Если новый размер резерва больше старого, необходимо повторное выделение блока аналогично DynamicArrayPushBackValue
Помогите решить задачку из лабараторной по C++ Вычислить f=cos(2 в квадрате)x на отрезке [-2; 5] с шагом 0,15. Найти сумму всех f > a*2
помогите плиииз! написать программу на паскале: упорядочить матрицу А[6,6] по элементам третьей строки.
Помогите исправить ошибки..Нужно инвертировать матрицу относительно побочной диагонали... Язык c. Code: #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); }
Дана целочисленная матрица размера m на n. Размер матрицы задается динамически во время выполнения программы. Для хранения элементов матрицы использовать динамическое выделение памяти. Матрица заполняется случайными числами в диапазоне от -50 до 50. Используя алгоритм пузырьковой сортировки отсортировать элементы каждой четной строки по возрастанию, а нечетную - по убыванию. Заполнение матрицы случайными числами, сортировку элементов строк матрицы и вывод матрицы на экран организовать в виде функции. Задание вроде не сильное с первого взгляда, но написать не могу. Помогите по-возможности. С++ Точно в С++! Создать два файла сpp и заголовочный файл. Написать отдельную функцию, которая сортирует. Пожалуйста помогите, уже просто срок совсем поджал! Заранее благодарен
[PASCAL] Помогите плз доделать лабу... В коде чего то не хватает для нормальной работы программы, но только понять не могу чего... Здача: Составить функцию, которая возвращает значение 0, если в последовательности целых чисел а1,а2,...аn отсутствуют три соседних нечетных числа, или номер первого числа встретившейся тройки таких чисел... Код: Code: program proverka; uses crt; const n=10; var c,i:integer; function proverk (var a:array of integer):integer; var i,j:integer; begin for i:=1 to n-2 do if b[i] mod 2 <> 0 then if b[i+1] mod 2 <> 0 then if b[i+2] mod 2 <> 0 then begin proverk:=i; exit; end; proverk:=0; end; begin clrscr; for i:= 1 to n do begin readln(a[i]); c:=proverk(a[i]); write(' ',c); writeln; end; end.
во первых зачем тебе n? если она у тебя константового типа и =10 . во вторых откуда взялся массив b? при том надо прописать случай else. при том в основном варе не объявлен массив , то что он присутсвует в функции это не значит что он будет в основной программе. ps мне интересно каким образом ты эту программу компилировал и таких косяков не нашёл?
n1ghtstalker, ой сорь, чтот я затупил с кодом, видать не сохранил переделанную, а скинул код совсем сырой... Функция данной задачи должна вроде выглядеть так, а как ее впихнуть в саму программу чет не догоняю, не оч дружу с функциями. Если тебе не сложно помоги доделать ее по условию задачи... Code: function proverk (a:array[1..n] of integer):integer; var i,j:integer; begin for i:=1 to n-2 do if a[i] mod 2 <> 0 then if a[i+1] mod 2 <> 0 then if a[i+2] mod 2 <> 0 then begin proverk:=i; exit; end; proverk:=0; end;
ты читал мои комментарии? где случай else?? у тебя после всех проверок сначала присваивается значение i , а в конце концов 0 . + номер первого числа встретившейся тройки таких чисел... ??? WTF? скинь всё условие. при том соседними для к примеру для 4 являются 1,2,3 так и 5,6,7.
ну ты посмотри по шагам, оно и выходит относительно. оно значения i элемента не даст.а вернёт 0. после всех циклов допустим proverk=5; потом ей же значение 0.... мож это эконом какой нибудь?)
int check(int *a,int n) // взорви моск препода { for(i=0;i<n-2;i++) if((a & 1)+(a[i+1] & 1)+(a[i+2] & 1)==3) return a; return 0; }
... задачки слишком простые для пользователя АНТИЧАТА! (подумайте об этом) Code: #include <stdio.h> #include <math.h> int main() { float i,f,a; float sum; printf("\r\nВведите а:"); scanf("%f",&a); for(i=-2,sum=0;i<5;i+=0.15) { f=fcos(i)^2; if(f>a*2) sum+=f; } printf(\r\nРезультат:%f",sum); return 0; }