Member
Статус: Не в сети Регистрация: 15.06.2007 Откуда: Одесса
Lord_of_Darkness немного оптимизировала) но второй кубик отказывается выводиться с табуляцией) только верхняя строчка) буду думать, как исправить я их вообще хотела в один ряд ставить, но это никак не получается) теперь и с табуляцей облом)
_________________ Ув. модераторы. Прежде, чем наказывать меня за что-то, - посоветуйтесь со мной. Я вам запрещу
Junior
Статус: Не в сети Регистрация: 05.10.2007 Откуда: Москва
Visual Basic.
Приветики!
Вот уж никогда бы не подумала, что мне придется так впасть в тупик.
В универе какой-то предмет поставили, и там надо задачки решать, а я в програмировании ни бум-бум совсем!
Виндовс переустанавливать умею, сама все делаю, а вот програмировать нет.
Препод ниче не объясняет, только орет на нас и грит, что мы должны все знать.
2 задачи.
#77
Вот в общем условие, надо написать код, и по возможности подсобите, как составить к этим задачам блок-схемы. Пожалуйста помогите...
Добавлено спустя 18 минут, 7 секунд О!
Задачу 1ю я сделала!
a=2.05
b=3.05
h=0.1
for x=a to b step h
y=(x^3-0.3*x)/SQR(1+2*x)
list1.additem "y=" & y & "x=" & x
next x
вот такой вот текст, проверила, работает! Ура!
Вот как вторую задачу сделать, совсем не знаю!
Помогите... Добавлено спустя 33 минуты, 58 секунд
_________________ Я обновила свой комп! УРА! ))
В профиле подробности!
Народ, всем привет. Помогите пожалуйста с лабораторными:
Л-1: в одномерном массиве, состоящем из n целочисленных элементов, вычислить:
1) номер максимального элемента массива;
2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине - элементы, стоявшие в четных позициях.
Л-2: по теме двумерные массивы:
Для заданной матрицы размером 8*8 найти такие k, при которых k-я строка матрицы совпадает с k-ым столбцом.
Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Member
Статус: Не в сети Регистрация: 15.10.2004 Откуда: Киев
Queeni не путай си и бейсик
в басике(по крайней мере в 6-м) массивы выделялись так
Dim Название([размерность][,размерность]...[,размерность])
если не указать размерность а указывать ее непосредственно перед использованием массива(т.е. выделять память динамически)
то перед использованием пишем
ReDim ([размерность][,размерность]...[,размерность])
это вместо сишных calloc/malloc
пример(для VB6)
Код:
dim a() as integer dim i as integer private sub form_load() i=9'9+1 членов массива redim a(i)'выделили память for i=0 to 9 a(i)=i'загнали в каждый член масива чтонибудь form.print a(i)'и выкинули прямо на форму next i end sub
если где синтаксические ошибки сори
Добавлено спустя 1 минуту, 19 секунд mareolitta на каком языке?
Последний раз редактировалось ValCoder 11.10.2007 19:10, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 15.10.2004 Откуда: Киев
GHO'st хоть убей не знаю паскаль, но если рубишь его синтаксис то думаю перегонишь с си:
Код:
void main() { bool arr[7]; int j=0; for (int i=0;i<8;i++) { cin>>arr[i];//можно еще добавить проверку соответствия типов вводимых данных //или автопривение типа к необходимому(если 0 считаем что фолс иначе тру) if (!(i%2)&&(i>1)&&(!arr[i])) {j++;}//если i делится без остатка на 2, больше единицы(чтоб исключить нулевой член), и i-ый член массива = false } cout<<\n<<j<<" элементов соответствуют условию"; }
помогите сделать задачи по VBA
Ввести вещественный массив. a) Найти последнее отрицательное число массива (выделить цветом), b) в каждой паре элементов массива поменять местами соседние элементы, c) найти элемент массива, который ближе всего к среднему значению.
Если можно с комментариями
GHO'st Паскаль я уже очень давно не видел перед собой, поэтому писал на Делфи, но на таком уровне это один чёрт если это вообще ещё тебе нужно
Цитата:
program Project1;
{$APPTYPE CONSOLE} //это тебе писать не надо, эт чтоб в делфи фурыкало нормально
uses SysUtils; // у паскаля тут надо другие модули подключать, надеюсь знаешь какие, //я уже не помню давно это было var a:array [0..7] of boolean; i,count:integer; begin count:=0; for i:=0 to 7 do begin if (i/2-i div 2=0) and (a[i]=false) then //или можно так: if (i/2-int(i/2)=0) and (a[i]=false) then //не знаю можно ли так в паскале: int(i/2), а вот div должен быть
count:=count+1; end; write(count); readln; end.
_________________ • Hичто не pаботает так, как планиpовалось запpогpаммиpовать.
• Hичто не пpогpаммиpyется так, как должно pаботать.
Здрасте, Паскаль я изучаю недавно, но тем не менее нужно решить домашнюю работу, только не знаю как. Значит, вот задача:
Выделить самую многочисленную группу слов одинаковой длины. Расположить эти слова по алфавиту и вывести на экран.
Все выполнить в Паскале.
void main() { cout<<"\nEnter N of ROWS of 1st matrix:"; cin>>ROW; cout<<"\nN COLUMNS of 1st matrix(it's also N rows for 2d matrix):"; cin>>N; cout<<"\nAnd COLUMNS of 2d matrix:"; cin>>COL; //выделяем память под матрицы int* matrix1; int* matrix2; int* matrix3; matrix1=new int[ROW*N];matrix2=new int[N*COL];matrix3=new int[ROW*COL]; //и заполняем исходных две cout<<"\nNow please enter values of 1st matrix elements(enter after each value):\n"; for (j=0;j<N;j++) { for(i=0;i<ROW;i++) { cin>>matrix1[j*ROW+i];cout<<" ";//пару пробелов перед //очередным эл. матрицы в той же // строке,т.е. к примеру строка получится так 3 5 9 13 } cout<<"\n";//новая строка матрицы } cout<<"\nNow please enter values of 2d matrix elements(enter after each value):\n"; for (j=0;j<N;j++) { for(i=0;i<COL;i++) { cin>>matrix2[j*N+i];cout<<" "; } cout<<"\n"; } matrix3=mulmatr(matrix1,matrix2,ROW,N,COL); cout<<"Result matrix is:\n"; for (j=0;j<COL;j++) { for(i=0;i<ROW;i++) { cout<<matrix3[j*ROW+i]<<" "; } cout<<"\n"; } cin>>i;//вместо getch чтоб не подключать библиотеки лишние }
Последний раз редактировалось ValCoder 19.10.2007 10:48, всего редактировалось 5 раз(а).
Member
Статус: Не в сети Регистрация: 15.10.2004 Откуда: Киев
mareolitta не знаю актуально ли еще
но на всякий
первая лаба
поиск номера максимального элемента(в виде функции, принимает указатель на массив и его размер)
Код:
int maxnumber(int* arr,int size) { int maxnum=0;int max=arr[0]; for (i=1;i<size;i++) { if(arr[i]>max) { max=arr[i]; maxnum=i; } } return maxnum; }
лаба1 пункт 2 произведение между 2 первыми нулевыми
Код:
int* mul12(int* arr,int size)//для записи произведения кучи инт32 может не хватить ни инт32 ни инт64, //потому результат запихнем в массив,где первый член - скока у нас ушло памяти(двойныхслов) //а дальше - собсно результат { int el1=0,el2=0,i=0; while(arr[i]!=0) {i++;} el1=i; while(arr[i]!=0) {i++;} el2=i; //нашли концы диапазона //теперь посчитать бы место под массивчег с резалтом, //для этого нужен логарифм по основанию 2 причем целочисленый,см ф-цию log2(int i) ниже int size=32;//по дефолту надеемся поместится в инт32 for(i=el1+1;i<el2;i++) { size+=log2(arr[i]); } //округлим до кратного 32бит и выразим в количестве инт32(те. поделим на размер инт в битах) if (size%32) size+=(32-size%32); size=size>>5;//делим на 32 int* result; __int64 accum=0; result=new int[size+1]; result[size]=1;//принициалиировали итоговый ответ единичкой - мы же перемножать будем result[0]=size; for(i=el1+1;i<el2;i++) { for (int j=size;j>1;j--) { accum+=arr[i]*result[j]; arr[i]=accum%(2<<32); accum>>32; } arr[1]=accum%32; } return result; } int log2(int n) { int result; while(n) { result++; n>>1; } return result; }
пример использования
Код:
int* result; result=mul12(predefinedarray,100); int razmercheg_otveta=result[0]; if (razmercheg_otveta=1) { int otveteg=result[1]; } else { int* otveteg; otveteg=new int[size]; for(i=0;i<size;i++) { otveteg[i]=result[i+1]; } }
перемешивание массива
Код:
void mixarray(int* array,int size) { int* tmparr; tmparr=new int[size]; for (int i=0;i<size;i++)//перемешиваем { if(i%2) tmp[(i-1)>>1]=array[i]; else {tmp[(size+i)>>1]=array[i];} } for (int i=0;i<size;i++)//копируем в исходный массив { array[i]=tmp[i]; } delete[] tmparr; //чистим мусор за собой }
лаба 2
Код:
int k_list(int* matrix)//считаем что матрица 8 на 8 { //максимум можно получить 8 значений k, типа bool (для каждой позиции) //т.е. их можно запихнуть в 1 байт, а 4байта (int) и подавно int klist=0,i=0,j=0; double tmp;//схалтурим с типом- здесь если хоть одна ячейка i-того столбца //совпадет с соотв. ячейкой i-той строки будет 0 for (i=0,i<8,i++) { tmp=1.0; for (j=0,j<8,j++) { tmp*=(array[i+j]-array[i+(j<<3)]); } if (tmp) { klist+=(2<<i);//ставим флажок напротив соответствующей строки //который кагбы говорит нам: эта строка=соответствующему столбцу } } return klist; }
.... //пример обработчика int k=k_list(ourmatrix_8x8) cout<<"\nk row of matrix is equal to k column for such k:" for (int i=0;i<8;i++) { if ((k>>i)%2) cout<<i<<","; } ....
лаба 2 - Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент
Код:
int* sum(int* matrix)//та же матрица 8х8 { int i=0,j=0,strings=0; for (i=0;i<8;i++) { for (j=0,j<8,j++) { if (matrix[(i<<3)+j]<0) { strings+=(2<<i);//пометили нужные strings+=256;//и +1 к размеру массива под ответы //(пишем во второй байт инт32, в первом у нас маска нужных строк) } } } int* sum;//массив ответов,0-элемент - количество, 1-n - ответы sum=new __int64[(strings>>8)+1];//инт32 для суммы 8 инт32 может //не хватить sum[0]=(strings>>8); int n=1; for (i=0;i<8;i++) { if ((strings>>i)%2) { for(j=0;j<8;j++) { sum[n]+=matrix[(i<<3)+j]; } n++; } } return sum; }
.... //пример обработчика __int64* s =sum(ourmatrix_8x8); cout<<"\nsum of elements from the matrix's rows which contains elements<0:" for (int i=0;i<s[0];i++) { cout<<s[i+1]<<","; } ....
Последний раз редактировалось ValCoder 18.10.2007 11:16, всего редактировалось 6 раз(а).
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Питер!
ValCoder Когда пытаюсь скомпилить, то выдаёт ошибку, типо надо добавить #include <stdafx.h>. Но после его добавления появляется куча других ошибок
Код:
c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(7) : error C2871: 'std' : a namespace with this name does not exist c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(23) : error C2109: subscript requires array or pointer type c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(23) : error C2109: subscript requires array or pointer type c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(32) : error C2065: 'cout' : undeclared identifier c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(33) : error C2065: 'cin' : undeclared identifier c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(36) : error C2065: 'Cout' : undeclared identifier c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(39) : error C2440: '=' : cannot convert from 'int *' to 'int' There is no context in which this conversion is possible c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(39) : error C2440: '=' : cannot convert from 'int *' to 'int' There is no context in which this conversion is possible c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(42) : error C2143: syntax error : missing ';' before 'for' c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(53) : error C2143: syntax error : missing ';' before 'for' c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(57) : error C2109: subscript requires array or pointer type c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(61) : error C2664: 'mulmatr' : cannot convert parameter 2 from 'int' to 'int *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(67) : error C2109: subscript requires array or pointer type c:\documents and settings\bot\мои документы\visual studio 2005\projects\222\222\222.cpp(71) : error C3861: 'getch': identifier not found
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения