C++. Нужно помощь. - Форум
Пятница, 09.12.2016, 10:39
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » C++. Нужно помощь. (Добавить проверку.)
C++. Нужно помощь.
Ma666oTДата: Четверг, 09.12.2010, 14:04 | Сообщение # 1
Полковник
Группа: Новичок
Сообщений: 34
[ 1 ]
Статус: Offline
Привет всем!
Ниже приведен код для решения задачи "Спроектируйте класс Array. Элементом класса является массив z,
состоящий из 20-и целых чисел. Для работы с массивом z предусмотрите ис-пользование функций, являющихся «друзьями» класса."

Нужно добавить условный оператор, который будет проверять, что вводимая позиция не превышает размерность массива, т.е. не более 19.
Моё решение:

Code
if (chislo>19)
{cout<<"Введенное число превышает размерность массива, введите другое";
cin>>chislo;}
но этот вариант не работает

Code

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;

// объявление и описание класса
#include <conio.h>

class Array{

int *z;
public:

/конструктор
Array()
{
z=new int [20];
cout<<"Введите элементы массива "<<endl;
for(int i=0;i<20;i++)
cin>>z[i];
}

friend void set(Array &b,int a,int index);
friend void reverse(Array &b);
friend void print(Array &b);

//деструктор
~Array(){
delete[]z;
cout<<"Объект успешно удалён!"<<endl;
}

};
void set(Array &b,int a,int index)
{
b.z[index]=a;
}
void print(Array &b)
{
for(int i=0;i<20;i++)
cout<<b.z[i]<<" ";
cout<<endl;
}

void main()
{
setlocale(LC_ALL,".1251");
int size;
Array my1;
int chislo;
int pos;
cout<<"Введите число для вставки и позицию: "<<endl;
cin>>chislo>>pos;
set(my1,chislo,pos);
cout<<"Введенный массив"<<endl;
print(my1);

}
 
VoidДата: Четверг, 09.12.2010, 14:33 | Сообщение # 2
Сержант
Группа: Новичок
Сообщений: 5
[ 0 ]
Статус: Offline
Конечно не сработает. Проверять-то нужно переменную pos, а не chislo.
А вообще такую проверку лучше делать в самой функции set:
Code

bool set(Array &b,int a,int index)  
{  
  if (index >= 0 && index <= 19)
  {
   b.z[index]=a;
   return true;
  }
  return false;
}

//.................

while (!set(my1,chislo,pos))
{
  cout << "Позиция элемента превышает размерность массива. Введите снова: ";
  cin >> pos;
}
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » C++. Нужно помощь. (Добавить проверку.)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016