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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите Решить Задачу На С++ 
V
    Опции темы
Ru4kin
  Дата 17.4.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет Всем. Я Тут Первый Раз , Дык Чегото То Не Нашёл Раздела Помощи :/
У Меня Такой Трабл, На Курсовую Задали Написать 2 Задачи По Массивам (1курс) ,  Смешные Задачи , Но В Разных Мелких Нюансах Разобраться Не Могу , И Ошибкок Выше Крышы    smile 
Прошу Помоч Мне     smile 

Вот Их Описание:

1) Пусть А - Одномерный Массив, Составленный Из N елых Числел. Найти Элементы Повторяющиеся В Массиве Наибольшее Число Раз.
Ветс Ол Фёрст Задачи  smile 
->>

2) Пусть А -Двумерный Массив Целых Чисел Размерности NxN. Ввести Его Как Типизированную Константу И Найти:
а)Элемент Массива Ближайший К Числу -2, и Его Индексы;
б)Сумму И Количество Не Отрицательных Элементов;
в)Число Столбцов С Не Нулевой Суммой Элементов;
г)Максимальный Из Элементов Побочной Диограммы.

Спасибо Большое За Ранее       smile 
 
PM MAIL   Вверх
Lamak
Дата 17.4.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вот первая прога 
Код

#include "iostream.h"
int main(int argc, char* argv[])
{
        const int N=10;
        int A[N]={1,2,2,3,4,5,6,5,2,5};
        int B[N]={0,0,0,0,0,0,0,0,0,0};
        int C[N]={0,0,0,0,0,0,0,0,0,0};
        int count=0;
        bool flag=true;
        B[0]=A[0];C[0]++;
        count++;
        for(int i=1;i<N;i++)
        {
                flag= true;
                for(int j=0;j<count;j++)
                        if(A[i]==B[j])
                        {
                                C[j]++;
                                flag=false;
                                break;
                        }
                if(flag)
                {
                        B[count]=A[i];
                        C[count]++;
                        count++;
                }
        }
        int max=0;
        for(int i=1;i<count;i++)
        {
                if(C[i]>C[max])
                        max=i;
        }

        for(int i=0;i<N;i++)
        {
                cout<<A[i]<<" ";
        }
        cout<<"\n";
        cout<<" В Массиве Наибольшее Число Раз \n";
        for(int i=0;i<N;i++)
        {
                if(C[i]==C[max])
                        cout<<"Повторяется "<<B[i]<<" , "<<C[i]<<" раз\n";
        }
        char a;
        cin>>a;
        return 0;
}
 
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Ru4kin
Дата 18.4.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хм... Необычно Написано smile Lamak , Спасибо Что Потратили Время , Уделив Его Для Помощи Мне  smile 

Тока У Меня Показывает Ошибку  smile 
:
:\Мои Проги\Курсовая 2\1.cpp(42) : error C2374: 'i' : redefinition; multiple initialization
        D:\Мои Проги\Курсовая 2\1.cpp(12) : see declaration of 'i'

И Так Три Раза :/ Мы Не Обьявили Что ТАкое "i" ? Но Это Абсурд... 

Попытался Перевзи Эту Писанину , ПОлучилась ПРимерно Такая Суть : Многократное Переопределение (замена Прошлого Значения На Новое) , Многократная Инициализация... 

Не Могу Понять Почьву Регательства Компелятора На Меня smile 

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


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



нужно определить переменную единожды.

Добавлено @ 17:53 
Код

#include "iostream.h"    
int main(int argc, char* argv[])    
{    
        int i = 0;
        const int N=10;    
        int A[N]={1,2,2,3,4,5,6,5,2,5};    
        int B[N]={0,0,0,0,0,0,0,0,0,0};    
        int C[N]={0,0,0,0,0,0,0,0,0,0};    
        int count=0;    
        bool flag=true;    
        B[0]=A[0];C[0]++;    
        count++;    
        for(i=1;i<N;i++)    
        {    
                flag= true;    
                for(int j=0;j<count;j++)    
                        if(A[i]==B[j])    
                        {    
                                C[j]++;    
                                flag=false;    
                                break;    
                        }    
                if(flag)    
                {    
                        B[count]=A[i];    
                        C[count]++;    
                        count++;    
                }    
        }    
        int max=0;    
        for(i=1;i<count;i++)    
        {    
                if(C[i]>C[max])    
                        max=i;    
        }    
        for(i=0;i<N;i++)    
        {    
                cout<<A[i]<<" ";    
        }    
        cout<<"\n";    
        cout<<" В Массиве Наибольшее Число Раз \n";    
        for(i=0;i<N;i++)    
        {    
                if(C[i]==C[max])    
                        cout<<"Повторяется "<<B[i]<<" , "<<C[i]<<" раз\n";    
        }    
        char a;    
        cin>>a;    
        return 0;    
}
 
PM MAIL ICQ   Вверх
Lamak
Дата 18.4.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Хм... Необычно Написано 

Потому как писалось быстро, по простому и чтоб работало!
Кстати, просто из любопытства, что тебе показалось необычным?

А ошибка у тебя возникала потому что мы под разными компиляторами запускаем.
Я запускал под "C++Builder 6" в  консольном приложении.  
 
По поводу вторго задания:
Цитата

Ввести Его Как Типизированную Константу  
Не понял эту фразу? Вернее я уже забыл что такое типизированая константа.
Цитата

г)Максимальный Из Элементов Побочной Диограммы.
Что это такое? 
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Ru4kin
Дата 19.4.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хз, я просто ещё не силён в С++ ... 
Думал нужно создать простой массив , с функцией в строк 10 smile 
Цитата

bool — булев тип в языках Си и С++. Может принимать одно из двух заранее определённых значений - true (истина) или false(ложь). 

Зачем он там ? 
Зачем Нам         int B[N]={0,0,0,0,0,0,0,0,0,0};
                          int C[N]={0,0,0,0,0,0,0,0,0,0};

О_о 

Если чесно просто не понял как она работает :/
Завтра спрошу у одногрупников... 

А на счёт второй :

Цитата

Цитата

Ввести Его Как Типизированную Константу  

 
Не понял эту фразу? Вернее я уже забыл что такое типизированая константа.


Думаю Типизированную , тобишь типа - int , double , char. 

Цитата

г)Максимальный Из Элементов Побочной Диограммы.
 

Что это такое?  



Опечатка smile Диагонали...
К примеру матрица:
1  2   3 
4  5   6
7  8   9 

Побочная диагональ 3,5,7
Воть smile 
PM MAIL   Вверх
Lamak
Дата 22.4.2006, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Зачем Нам         int B[N]={0,0,0,0,0,0,0,0,0,0};
                          int C[N]={0,0,0,0,0,0,0,0,0,0};


int B[N]={0,0,0,0,0,0,0,0,0,0};//в  этом массиве хранятся элементы массива  A[N], только они в нём не повторяются
int C[N]={0,0,0,0,0,0,0,0,0,0};//в элементе С[i] хранится кол-во повторений элемента B[i] в масиве А[N];(i=от 0 до count)
count   -   кол - во различных элементов в массиве A[N]

Распечатай все массивы в конце проги будет понятней,зачем они нужны.
Получиш что-то вроде етого
A[]= 1 2 2 3 4 5 6 5 2 5
B[]= 1 2 3 4 5 6 0 0 0 0   //элемент В[1]=2 встречается в массиве А[N]   C[1]=3 раз 
C[]= 1 3 1 1 3 1 0 0 0 0
count = 6;



 
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Lamak
Дата 22.4.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

bool flag=true

Это флаг,говорящий о следующем
 flag=true   -   элемента A[i] ещё нет  в массиве В[]  следовательно
Код

B[count]=A[i]; заносим его в В[]    
C[count]++; кол- во повторений =1    
count++;в массиве B[](и C[] тоже) на один значащий элемент больше. 


 flag=false  -  элемента A[i] уже есть   в массиве В[]  , в строке 20:  
 C[j]++;//увеличили кол- во повторений на 1 
 


Завтра напишу вторую прогу 
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Lamak
Дата 23.4.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вот вторая прога 
Код

#include "math.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
        const int N=4;
        // Пусть А -Двумерный Массив Целых Чисел Размерности NxN
        int A[N][N]={   { 1, 4, 7, 0},
                        { 0,-6,-4, 8},
                        {11, 3, 9, -3},
                        { 4,12,-5, -8}};
        int i=0,j=0;
        cout<<"A[][]=\n";
        for(i=0;i<N;i++)
        {
                for(j=0;j<N;j++)
                        cout<<A[i][j]<<" ";
                cout<<"\n";

        }
        
        //1)Элемент Массива Ближайший К Числу -2, и Его Индексы;
        int h=-2,k=0,l=0;
        for(i=0;i<N;i++)
                for(j=0;j<N;j++)
                        if(abs(A[i][j]-h)<abs(A[k][l]-h))
                        {
                                k=i;l=j;
                        }
        cout<<"\n\n zadanie 1 ";
        cout<<"\n blige k "<<h<<" A["<<k<<"]["<<l<<"]= "<<A[k][l];
        
        //2)Сумму И Количество Не Отрицательных Элементов;
        int S=0,kol=0;
        for(i=0;i<N;i++)
                for(j=0;j<N;j++)
                        if(A[i][j]>=0)
                        {
                                S+=A[i][j];
                                kol++;
                        }
        cout<<"\n\n zadanie 2 ";
        cout<<"\n summ = "<<S<<"\n kol-vo = "<<kol;
        
        //3)Число Столбцов С Не Нулевой Суммой Элементов;
        kol=0;
        for(i=0;i<N;i++)
        {
                S=0;
                for(j=0;j<N;j++)
                        S+=A[j][i];
                if(S!=0)
                        kol++;
        }
        cout<<"\n\n zadanie 3 ";
        cout<<"\n Kol = "<<kol;

        //4)Максимальный Из Элементов Побочной Диограммы
        k=0;l=N-1;
        for(i=0;i<N;i++)
        {
                if(A[i][N-1-i]>A[k][l])
                {
                        k=i;l=N-1-i;
                }
        }
        cout<<"\n\n zadanie 4 ";
        cout<<"\n maximum na dioganale  A["<<k<<"]["<<l<<"]= "<<A[k][l];
        getchar();

        return 0;
}
 
--------------------
Роботы - это интересно и увлекательно! 
PM MAIL   Вверх
Ru4kin
Дата 26.4.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо Большое !
Можно Сказать Вы Меня Спасли  smile 

С форума Не Ухожу , Думаю Научиться Тут Красивому Програмированию... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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