Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2014, 13:52   #1
VitoK72
 
Регистрация: 08.04.2014
Сообщений: 4
По умолчанию C++ Массив случайных чисел, размерность задается пользователем.

Доброго вам времени суток!
Пишу курсовую работу, вот собственно вся тема: Разработать программу для реализации алгоритма интерполяционного поиска числа. Для поиска программа должна сформировать массив случайных чисел, упорядоченных с помощью алгоритма сортировки пузырька. Размерность массива задается пользователем. Определить О-сложность алгоритма.

Но на данный момент меня больше всего интересует как можно создать массив случайных чисел, с размерностью заданной пользователем. Перечитал много всего прежде чем к вам обратится, нашел что размер и размерность это разные понятия, но честно не совсем понял отличий. К тому же совсем не нашел как в массиве задать размерность. Если кто то сможет помочь, и обьяснять мне написание всей программы, то буду очень благодарен! Но прошу хоть в малом помочь). Попрошу модераторов не закрывать тему после решения вопроса, может появятся еще какие то вопросы! Заранее спасибо!
VitoK72 вне форума Ответить с цитированием
Старый 08.04.2014, 14:36   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Тебе нужны динамические массивы (кликабельно).
Размерность_массива = [число_элементов_массива].
Размер_массива = [число_элементов_массива] * [размер_одного_элемента].
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 08.04.2014, 14:47   #3
VitoK72
 
Регистрация: 08.04.2014
Сообщений: 4
По умолчанию

Спасибо! Стало гораздо яснее, попробую начать. прошу не удалять тему, думаю еще будут вопросы)
VitoK72 вне форума Ответить с цитированием
Старый 09.04.2014, 10:47   #4
VitoK72
 
Регистрация: 08.04.2014
Сообщений: 4
По умолчанию

Вообщем вот что получилось примерно пока что, с миру по нитке как говорится, буду рад услышать замечания, может что то поправить нужно.
Код:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
void bubbleSort(int *, int); // прототип функции сортировки пузырьком
 
int main(int argc, char* argv[])
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    cout << "Введите размер массива: ";
    int size_array; // длинна массива
    cin >> size_array;
 
    int *sorted_array = new int [size_array]; // одномерный динамический массив
    for (int counter = 0; counter < size_array; counter++)
    {
        sorted_array[counter] = rand() % 100; // заполняем массив случайными числами
        cout << setw(2) << sorted_array[counter] << "  "; // вывод массива на экран
    }
    cout << "\n\n";
 
    bubbleSort(sorted_array, size_array); // вызов функции сортировки пузырьком
 
    for (int counter = 0; counter < size_array; counter++)
    {
        cout << setw(2) << sorted_array[counter] << "  "; // печать отсортированного массива
    }
    cout << "\n";
 
    system("pause");
    return 0;
}
 
void bubbleSort(int* arrayPtr, int length_array) // сортировка пузырьком
{
 int temp = 0; // временная переменная для хранения элемента массива
 bool exit = false; // болевая переменная для выхода из цикла, если массив отсортирован
 
 while (!exit) // пока массив не отсортирован
 {
  exit = true;
  for (int int_counter = 0; int_counter < (length_array - 1); int_counter++) // внутренний цикл
    //сортировка пузырьком по возрастанию - знак >
    //сортировка пузырьком по убыванию - знак <
    if (arrayPtr[int_counter] > arrayPtr[int_counter + 1]) // сравниваем два соседних элемента
    {
     // выполняем перестановку элементов массива
     temp = arrayPtr[int_counter];
     arrayPtr[int_counter] = arrayPtr[int_counter + 1];
     arrayPtr[int_counter + 1] = temp;
     exit = false; // на очередной итерации была произведена перестановка элементов
    }
 }
}
Возник следующий вопрос, так как преподаватель скрывается пытаясь "срубить бабла" не отвечает ни на какие вопросы. Мне дальше нужно реализовать алгоритм интерполяционного поиска по уже отсортированному массиву. И на сколько я понимаю судя по задаче, пользователь должен ввести число, а программа показать номер элемента данного числа в массиве. А если его нет то вывести сообщение что такого числа нет в массиве. Я правильно понимаю? Понимаю что вопрос немного глупый, просто преподователь не идет на контакт. Вот и решил у вас спросить, просто если чисто логически подумать. Может я что то не так понимаю. И если можно скиньте ссылку, или обьясните про интерполяционный поиск, много перечитал, но почему то везде как то не единоглассно это все.
VitoK72 вне форума Ответить с цитированием
Старый 09.04.2014, 12:51   #5
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Искали? ORLY?
На википедии (кликабельно) даже реализация есть.

Цитата:
преподаватель скрывается пытаясь "срубить бабла" не отвечает ни на какие вопросы
Скорее я поверю в то, что его до чертиков достали студенты, которые не знают, что такое cin и cout, но при этом хотят оценку "отлично".
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 09.04.2014, 13:07   #6
VitoK72
 
Регистрация: 08.04.2014
Сообщений: 4
По умолчанию

Хорошо, спасибо за помощь, больше не стану задавать вопросов. Заочное обучение дает свои "плоды" и уверяю вас есть масса учебных заведений, где курсовые предлагают не писать вовсе.
VitoK72 вне форума Ответить с цитированием
Старый 09.04.2014, 13:16   #7
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Правильнее было бы написать не
Цитата:
больше не стану задавать вопросов
, а
Цитата:
больше не стану задавать вопросов которые прогугливаются за минуту
Уверяю Вас, я на нерадивых студентах зарабатываю для себя небольшую денежку, и прекрасно знаю, КАК учатся на заочном отделении.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать массив с случайных чисел! DIQUON Помощь студентам 10 11.10.2013 14:12
Массив случайных чисел Yriy Общие вопросы C/C++ 14 15.02.2012 20:02
массив + генерация случайных чисел be-be Помощь студентам 1 22.10.2011 18:38
составить массив случайных чисел Паскаль lirikoff Помощь студентам 8 08.02.2011 21:20
Двухмерный массив случайных чисел AxisNet Паскаль, Turbo Pascal, PascalABC.NET 4 16.09.2009 10:01