Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
7 / 7 / 5
Регистрация: 17.02.2012
Сообщений: 119
1

Проверить решение задачи

06.07.2013, 04:00. Показов 1888. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть задача:
Напишите класс safearay, который использует массив типа int фиксированного размера (назовем его LIMIT) в качестве своей единственной переменной. В классе будет два метода. Первый, putel(), принимает индекс и значение типа int как аргументы и вставляет это значение в массив по заданному индексу. Второй, getel(), принимает индекс как аргумент и возвращает значение типа int, содержащееся в элементе с этим индексом.

safearay sa1; // описываем массив

int temp = 12345; // описываем целое

sa1.putel(7, temp); // помещаем значение temp в массив

temp = sa1.getel(7); // получаем значение из массива

Оба метода должны проверять индекс аргумента, чтобы быть уверенными, что он не меньше 0 и не больше,
чем LIMIT-1. Вы можете использовать этот массив без опаски, что запись будет произведена в другие части памяти.

Решить я ее решил, но не уверен что правильно. Вот мой код:
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
#include <iostream>
using namespace std;
class safearay
{
    private:
        int LIMIT[10];
    public:
         void putel(int index, int value)
         {
            LIMIT[index] = value;
         }
         
         int getel(int index)
         {
             return LIMIT[index];
         }
};
int main()
{
    system("chcp 1251 > nul");
    safearay sal;
    int temp = 1245345;
    sal.putel(7, temp);
    temp = sal.getel(7);
    cout << temp << endl;
    system( "pause" );
    return 0;
}
. Если можно, исправьте там где не верно и объясните почему. С++ изучаю самостоятельно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2013, 04:00
Ответы с готовыми решениями:

Проверить решение задачи
Здравствуйте! Я С++ изучаю самостоятельно, по книге Р.Лафоре &quot;ООП в С++&quot;. В главе 7 &quot;Массивы и...

Проверить 4 задачи
Пишу не себе, а девушке. Сам немного знаком с Делфи и MQL . Решения вроде бы правильные....

проверить решение
Даны вещественные массивы A S.Для каждого массива определить количество элементов предшествующих...

Проверить решение
Добрый вечер. Есть задание: Написать программу интерпретатор, которая переводит строку кода...

6
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.07.2013, 05:17 2
Цитата Сообщение от Koshachek Посмотреть сообщение
Оба метода должны проверять индекс аргумента, чтобы быть уверенными, что он не меньше 0 и не больше,
чем LIMIT-1. Вы можете использовать этот массив без опаски, что запись будет произведена в другие части памяти.
А это?
0
0 / 0 / 1
Регистрация: 10.10.2012
Сообщений: 3
06.07.2013, 05:44 3
Оба метода должны проверять индекс аргумента, чтобы быть уверенными, что он не меньше 0 и не больше,
чем LIMIT-1
это я бы добавил c помощью функции проверки на вхождение индекса в пределы массива

C++
1
2
3
4
5
6
7
8
9
10
11
12
         bool isArray(int index)
         {
             if ((index>=0)&&(index<=9))
             {
                 return true;
             }
             else
             {
               cout << "Range error!" << "\n";
               return false;
             }
         }
+ изменение в функциях putel

C++
1
2
3
4
5
6
7
8
//...
 
             if(isArray(index))
             {
                 LIMIT[index] = value;
             }
 
//...
и getel

C++
1
2
3
4
5
6
7
8
9
10
//...
 
              if(isArray(index))
             {
                 return LIMIT[index];
             }
 
                 return 0; //throw ...
 
//...
Всё вметсте

clac
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
using namespace std;
class safearay
{
    private:
        int LIMIT[10];
    public:
         void putel(int index, int value)
         {
             if(isArray(index))
             {
                 LIMIT[index] = value;
             }
         }
 
         int getel(int index)
         {
             if(isArray(index))
             {
                 return LIMIT[index];
             }
 
                 return 0; //throw ...
         }
 
         bool isArray(int index)
         {
             if ((index>=0)&&(index<=9))
             {
                 return true;
             }
             else
             {
               cout << "Range error!" << "\n";
               return false;
             }
         }
};
 
int main()
{
 
    safearay sal;
    int temp = 1245345;
    sal.putel(7, temp);
    temp = sal.getel(71); // осторожно! возвращает 0 (ноль) при некоректной подаче номера елемента
    cout << temp << endl;
 
    return 0;
}
.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.07.2013, 06:12 4
Цитата Сообщение от artemmensk Посмотреть сообщение
это я бы добавил c помощью функции проверки на вхождение индекса в пределы массива
Тогда не по заданию:
Цитата Сообщение от Koshachek Посмотреть сообщение
В классе будет два метода.
0
7 / 7 / 5
Регистрация: 17.02.2012
Сообщений: 119
06.07.2013, 14:25  [ТС] 5
Спасибо, с условием у меня проблем не было, я специально его не писал сюда. Мне было важно, правильно ли я реализовал задачу.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.07.2013, 23:33 6
Цитата Сообщение от Koshachek Посмотреть сообщение
я специально его не писал сюда.
А это тогда что?
Цитата Сообщение от Koshachek Посмотреть сообщение
Есть задача:
Напишите класс safearay, который использует массив типа int фиксированного размера (назовем его LIMIT) в качестве своей единственной переменной. В классе будет два метода. Первый, putel(), принимает индекс и значение типа int как аргументы и вставляет это значение в массив по заданному индексу. Второй, getel(), принимает индекс как аргумент и возвращает значение типа int, содержащееся в элементе с этим индексом.
Цитата Сообщение от Koshachek Посмотреть сообщение
Мне было важно, правильно ли я реализовал задачу.
Немного кривовато, из-за этого: "осторожно! возвращает 0 (ноль) при некоректной подаче номера елемента". Но при таком условии, не криво сделать - проблематично.
0
7 / 7 / 5
Регистрация: 17.02.2012
Сообщений: 119
07.07.2013, 00:35  [ТС] 7
Цитата Сообщение от alsav22 Посмотреть сообщение
А это тогда что?
мы друг друга не поняли, я говорил про условие "больше 0, но меньше чем LIMIT - 1".В свой код(который там, выше)я его не вставлял. Формулировку задачи ясное дело я писал. Ладно, спасибо за коменты.
0
07.07.2013, 00:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2013, 00:35
Помогаю со студенческими работами здесь

Решение задачи
Нужна помощь в решении задачи. Прошу помочь надеюсь в вашей поддержке:( прошу решить задачу

Решение задачи
Как решить задачу: поменять местами второй четный со вторым нечетным в одномерном массиве

Решение задачи С++
Помогите решить это задание. Для двух файлов A и B, которые включают по 17 элементов:...

Решение задачи c++
Написать программу вычисляющую значение функции y=√(9-x*x) на задонном орезке с заданным шагом...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru