Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 938 • Страница 30 из 47<  1 ... 27  28  29  30  31  32  33 ... 47  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 15.06.2007
Откуда: Одесса
Lord_of_Darkness
Пишу в VS 2003, С++. Но что такое calloc/malloc и new не знаю)
P.S. пытаюсь понять вторую ссылочку)

_________________
Ув. модераторы. Прежде, чем наказывать меня за что-то, - посоветуйтесь со мной. Я вам запрещу ;)



Партнер
 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
О-ла-ла писал(а):
Но что такое calloc/malloc и new не знаю)

это функции/операторы динамического выделения памяти.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 15.06.2007
Откуда: Одесса
Lord_of_Darkness немного оптимизировала) но второй кубик отказывается выводиться с табуляцией) только верхняя строчка) буду думать, как исправить :)
я их вообще хотела в один ряд ставить, но это никак не получается) теперь и с табуляцей облом)

_________________
Ув. модераторы. Прежде, чем наказывать меня за что-то, - посоветуйтесь со мной. Я вам запрещу ;)


 

Junior
Статус: Не в сети
Регистрация: 05.10.2007
Откуда: Москва
Visual Basic.
Приветики! :)

Вот уж никогда бы не подумала, что мне придется так впасть в тупик.
В универе какой-то предмет поставили, и там надо задачки решать, а я в програмировании ни бум-бум совсем!
Виндовс переустанавливать умею, сама все делаю, а вот програмировать нет.
Препод ниче не объясняет, только орет на нас и грит, что мы должны все знать. :weep:

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 секунд

_________________
Я обновила свой комп! УРА! :)))
В профиле подробности!


 

Member
Статус: Не в сети
Регистрация: 26.06.2007
Откуда: SPB
mассивы делаются самым простым образом

int mas1[10] - одномерный на 10 элементов типа инт
float mas2[10][5] - двумерный, на 50 элементов, типо флоат , доступ вида

mas2 (указывает на \|/ массив указателей, кажды указывает на 5 элементов, в принципе тот же одномерный на 5 элементов 10 раз подряд..)

[0] - [] [] [] [] []
[1] - [] [] [] [] []
[2] - [] [] [] [] []
[..

или же можно линейно, т.к после [0][4] идёт [1][0]
в памяти линейно

на счёт печати, посмотри книжку=)

_________________
опыт, порой, ценее результата.


 

Народ, всем привет. Помогите пожалуйста с лабораторными:

Л-1: в одномерном массиве, состоящем из n целочисленных элементов, вычислить:
1) номер максимального элемента массива;
2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине - элементы, стоявшие в четных позициях.

Л-2: по теме двумерные массивы:
Для заданной матрицы размером 8*8 найти такие k, при которых k-я строка матрицы совпадает с k-ым столбцом.
Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Заранее спасибо.
Добавлено спустя 32 секунды


 

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 раз.

 

Помогите пожалуйста с программой на паскале. Задали лабу в универе((((

В массиве из 8 элементов подсчитать число элементов с четными номерами, имеющими значение FALSE


 

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<<" элементов соответствуют условию";
}


 

ValCoder
на Visual C++


 

ValCoder, спасибо, но я не разобрался в том коде, который ты написал((((( Ибо никогда не изучал си, даж в глаза его видел всего пару раз


 

помогите сделать задачи по VBA
Ввести вещественный массив. a) Найти последнее отрицательное число массива (выделить цветом), b) в каждой паре элементов массива поменять местами соседние элементы, c) найти элемент массива, который ближе всего к среднему значению.
Если можно с комментариями


 

Junior
Статус: Не в сети
Регистрация: 16.08.2007
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аботать.


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
Народ, помогите пожалуйста добавить в мою програмку ввод элементов массива(матрицы) и вывод конечной матрицы C..
Код:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#define ROW 4
#define COL 3
#define N 3

using namespace std;

void mulmatr(int A[ROW][N], int B[N][COL], int C[ROW][COL])
{
    for(int i = 0; i < ROW; i++)
        for(int j = 0; j < COL; j++)
        {
            C[i][j] = 0;
            for(int k = 0; k < N; k++)
                C[i][j] += (A[i][k] * B[k][j]);
        }
}
int main()
{
 
     getch();
     return 0;
}


 

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


 

eQLbin

Спасибо огромнейшее! Теперь разобрался с этой прогой. Респект!


 

Member
Статус: Не в сети
Регистрация: 15.10.2004
Откуда: Киев
MW!
Код:
#include <iostream>
using namespace std;

int ROW=0,N=0,COL=0,i,j;
int* matrix1,matrix2,matrix3;

int* mulmatr(int* matrix1, int* matrix2,int ROW,int N,int COL)
{
     int* result;
     result=new int[ROW*COL];
     for(i = 0; i < ROW; i++)
     {
        for(j = 0; j < COL; j++)
        {
            result[i*COL+j] = 0;
            for(int k = 0; k < N; k++)
            {
                result[i*COL+j] += (matrix1[i*ROW+k] * matrix2[k*N+j]);
            }
        }
     }
     return result;
}

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


 

Member
Статус: Не в сети
Регистрация: 15.10.2004
Откуда: Киев
MW!
код подправил
проект делай пустой вин32 консольное приложение
тогда не нада будет автосоздаваемый stdafx


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 938 • Страница 30 из 47<  1 ... 27  28  29  30  31  32  33 ... 47  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan