Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zhandarbek
3 / 3 / 0
Регистрация: 15.08.2011
Сообщений: 60
#1

Массивы - C++

02.12.2011, 10:00. Просмотров 413. Ответов 5
Метки нет (Все метки)

как задать массив в C++, который в паскале выглядит так:
Pascal
1
var a : array[-10000..10000] of integer
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2011, 10:00     Массивы
Посмотрите здесь:

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив - C (СИ)
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai - Pascal
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi=...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле - Pascal ABC
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; begin clrscr; writeln('Массив первый:'); for i:=1...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы - C#
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил "Запрещено создавать темы с множеством...

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами - Turbo Pascal
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них создает файл, где компоненты - массивы вещ. чисел; ...

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
02.12.2011, 10:06     Массивы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
template<size_t start, size_t end, class T>
class PascalArray
{
   T arr[end-start+1];
public:
   inline T& operator[](size_t index)
   {
       return arr[index-start];
   }
};
 
int main()
{
   PascalArray<-10, 10, int> arr;
   for(int i = -10; i<=10; i++) arr[i] = i;
   for(int i = -10; i<=10; i++) cout << arr[i] << endl;
   return 0;
}
бомжтравоядный
3 / 3 / 1
Регистрация: 09.11.2011
Сообщений: 25
02.12.2011, 11:01     Массивы #3
Так пойдет ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL, "RUS");
     
    int mas[3000],k=-1000,p;
 
    for(int i=-1000; i<=1000; i++)
    {
      mas[i]=k;
      k++;
    }
 
    cout<<"Нажмите (1) для просмотра массива..."<<endl;
    cin>>p;
 
    system("cls");
 
    if(p==1)
    {
        for(int i=-1000; i<=1000; i++)
        {
        cout<<mas[i]<<" ";
        }
 
    }
    getch();
    return 0;
}
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
02.12.2011, 11:10     Массивы #4
Цитата Сообщение от бомжтравоядный Посмотреть сообщение
Так пойдет ?
Не пойдёт, вы сами смотрели что выдаёт?
В c нет массивов с отрицательными индексами, можно только извращаться с приведением индекса к положительному.

Добавлено через 3 минуты
Например, вот так
C++
1
2
3
4
5
        for(int i=-1000; i<=1000; i++)
        {
          mas[i+1000]=k;
          k++;
        }
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
02.12.2011, 11:41     Массивы #5
Цитата Сообщение от mimicria Посмотреть сообщение
можно только извращаться с приведением индекса к положительному.
K&R:
If one is sure that the elements exist, it is also possible to index backwards in an array; p[-1], p[-2], and so on are syntactically legal, and refer to the elements that
immediately precede p[0]. Of course, it is illegal to refer to objects that are not within the array bounds.

C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    int arr[] = {1, 2, 3, 4, 5, 6, 7};
    int *p = arr + 3;
 
    printf("%d ",  p[ -1 ]);
    printf("%d\n", p[ -2 ]);
    return 0;
}
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
02.12.2011, 11:45     Массивы #6
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
int *p = arr + 3;
Это всего-лишь один из таких способов извращения. Индексы всё равно положительные и к значению указателя не относятся
Yandex
Объявления
02.12.2011, 11:45     Массивы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru