Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> двумерный массив, каждый последущий элемент в 2раза больше 
:(
    Опции темы
sasha11
Дата 9.10.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.9.2006

Репутация: нет
Всего: нет



эх, целый день бьюсь об экран головой, задача такая.. создать двумерный массив[10][10], чтобы каждый последущий элемент был в 2 раза больше предыдущего...
ужос, всё что только мог.. перепробывал, нуждаюсь в помощи. 
int t,i,num[10][10];
for(t=0;t<10;++t){
for(i=0;i<10;++i){
num[t][i]=(t*10)+i+1;

StringGrid1->Cells[i][t]=num[t][i];//вывожу результат через компонент Builder C++, в принципе не важно.
}
}
PM MAIL   Вверх
_Michael
Дата 9.10.2007, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: нет
Всего: 6



 smile а ты знаеш такую задачу об изобретателе шахмат? что индийскому радже так игра понравилась что он сказал етому изобретателю что выполнит любое его желание. ну и тот сказал дай мне столько зерна чтоб на первой клетке одно зернышко, на второй два, на третьей 4, на четвертой  8,  и так по всей доске.? Ты представляеш какое ето огромное число? попробуй сначала на бумаге подсчитать приблизително. ето доска 8х8 шахматная. а тебе надо 10х10. Ето или арифметику больших чисел использовать или не знаю как еще. 
Но в чем проблема собственно? что-то из поста непонятно


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
sasha11
Дата 9.10.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.9.2006

Репутация: нет
Всего: нет



нда, наверно в задачнике опечатка, там написананно каждое следущее число в два рааз больше предыдущего..., типа 1 2 4 8 16 32 64 и.т.д. 
хех, я так долго парился.., ну а если массив 5x5 или хотябы 3х3, мне уже очень интересно не решить.. а узнать способ решения.. ???
PM MAIL   Вверх
_Michael
Дата 9.10.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: нет
Всего: 6



способ решения чего? 
как умножать числа на два? и присваивать их елементам массива? smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
sasha11
Дата 9.10.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.9.2006

Репутация: нет
Всего: нет



не... как умножать все элементы на два я знаю, но мне надо чтобы каждый елемент был в два раза больше предыдущего, хотябы массива 3х3.. 
типа 1 2 4
         8 16 32
         64 128 256

Это сообщение отредактировал(а) sasha11 - 9.10.2007, 17:46
PM MAIL   Вверх
Fazil6
Дата 9.10.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Код

#include <iostream>

const int col = 10;
const int row = 10;

long double num[row][col];

int main(int argc, char *argv[])
{
    num[0][0] = 1;
    long double *p = *num;
    for(int i = 1; i < row*col ; ++i)
    {
        long double tmp = *p;
        ++p;
        *p = tmp * 2;
    }

    for(int i = 0; i < row; ++i)
    {
        for(int q = 0 ; q < col ; ++q)
            std::cout << num[i][q] << " ";

        std::cout << "\n";
    }
}

PM MAIL   Вверх
sasha11
Дата 9.10.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 19.9.2006

Репутация: нет
Всего: нет



УХ !!! спасибо, теперь буду сидеть разбирать !!!
PM MAIL   Вверх
_Michael
Дата 9.10.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: нет
Всего: 6



Fazil6, long double может уместить в себе такие большие числа? Если размер етого типа 8 байт то максимальное число 2^64-1 можно уместить. 


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
mr.Anderson
Дата 9.10.2007, 18:09 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Вариант на паскале (язык все равно не указан smile ). Написано в Delphi 2007, ниже вариант без дельфинских вставок.
Код

//проект из Delphi 2007
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
 arr  : Array [0..3, 0..3] of Integer;
 i, j : Integer;

begin
  try
   arr[0][0] := 1;

   for i:=0 to 3 do
    for j:=1 to 3 do
    begin
     arr[i,j] := arr[i,j-1]*2;

     if( j = 3 ) and ( i < 3 ) then
      arr[i+1,0] := arr[i,j]*2;
    end;

   for i:=0 to 3 do
    for j:=0 to 3 do
     writeln( arr[i,j] );

   readln;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.

Код

//вариант без дельфинских вставок, чистый Паскаль

program Project1;

var
 arr  : Array [0..3, 0..3] of Integer;
 i, j : Integer;

begin
 arr[0][0] := 1;

 for i:=0 to 3 do
  for j:=1 to 3 do
  begin
   arr[i,j] := arr[i,j-1]*2;

   if( j = 3 ) and ( i < 3 ) then
    arr[i+1,0] := arr[i,j]*2;
  end;

 for i:=0 to 3 do
  for j:=0 to 3 do
   writeln( arr[i,j] );

 readln;
end.



--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
DjoNIK
Дата 9.10.2007, 23:05 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



mr.Anderson, а ничего, что форум по общим вопросам C++ smile


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
Fazil6
Дата 9.10.2007, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(_Michael @  9.10.2007,  17:59 Найти цитируемый пост)
Fazil6, long double может уместить в себе такие большие числа? Если размер етого типа 8 байт то максимальное число 2^64-1 можно уместить. 

не путать с целыми
PM MAIL   Вверх
marcusmae
Дата 9.10.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Цитата(_Michael @  9.10.2007,  17:30 Найти цитируемый пост)
индийскому радже так игра понравилась что он сказал етому изобретателю что выполнит любое его желание. ну и тот сказал дай мне столько зерна чтоб на первой клетке одно зернышко, на второй два, на третьей 4, на четвертой  8,  и так по всей доске.? Ты представляеш какое ето огромное число?


Хитрый раджа предложил изобретателю самому считать зёрнышки. Так что, за всю свою жизнь он немного насчитал. Отсюда мораль : сначала надо было изобрести вычислительные машины  smile 



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
0lmer
Дата 15.10.2007, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 3.12.2006

Репутация: нет
Всего: -1



Цитата(sasha11 @  9.10.2007,  17:13 Найти цитируемый пост)

int t,i,num[10][10];
for(t=0;t<10;++t)
{for(i=0;i<10;++i)
{num[t][i]=(t*10)+i+1;


по моему получится массив
1   2   3   4 5 6 7 8 9 10
10 12 13... и т. д.

насчет влезет ли число в long double не знаю, но где то в инете видел класс
который представляет числа в виде строки , туда в принципе можно спокойно 300-400 значные числа запихивать.


Это сообщение отредактировал(а) 0lmer - 15.10.2007, 10:26
PM   Вверх
ksili
Дата 15.10.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



я не понял, почему именно двумерный массив? По-моему вы его всё равно заполняете линейно. А вот если бы было так:

1    2    4    8
2    4    8   16
4    8   16  32
8   16  32  64

Добавлено через 1 минуту и 31 секунду
long double вмещает максимум примерно 10^4932


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
_Michael
Дата 16.10.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: нет
Всего: 6



Цитата(0lmer @  15.10.2007,  10:25 Найти цитируемый пост)
где то в инете видел класс
который представляет числа в виде строки , туда в принципе можно спокойно 300-400 значные числа запихивать.

ето и есть арифметика больших чисел, операции над ними тоже иначе реализованы, не можно ж например просто сложыть две строки как два числа, надо реализовать метод который будет посимвольно их обрабатывать.smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1283 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.