Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 6
1

Алгоритм на языке псевдокода (Преобразовать одномерный массив)

31.01.2013, 13:16. Просмотров 757. Ответов 6
Метки нет (Все метки)

Было задание в борланде -
Преобразовать одномерный массив, состоящий из 10(любых) вещественных элементов, таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные ( элементы, равные 0, считать положительными).

код готовой проги
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#define N 10
int
main(){
int i, j;
float a[N], t;
cout << "Enter " << N << " numbers: ";
for(i = 0; i < N; i++)
cin >> a[i];
for(i = 0; i < N - 1; i++)
for(int j = i + 1; j < N; j++)
if (a[i] < a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
for(i = 0; i < N; ++i)
cout << a[i] << ' ';
cout << endl;
cin.get();
cin.get();
}
Осталось написать Алгоритм - все этапы разработки алгоритма и сам алгоритм на языке псевдокода.
Кто поможет ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2013, 13:16
Ответы с готовыми решениями:

Дан одномерный массив размера n, преобразовать его в обратный массив
дан одномерный масив n количкства преоброзовать его в обратный масив если обратный масив...

Массив: преобразовать одномерный массив матрицу и записать ее в файл
Здравствуйте, как сделать чтобы данные записанные в Texbox в виде одномерного массива, записались в...

Преобразовать одномерный массив
Ввести одномерный массив A из N элементов.Все аргументы чье значение,увеличенное на единицу,и...

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

6
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.01.2013, 13:26 2
чуть попроще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float arr[10] = {-3,-4,-6,1,-7,2,3,4,5,6};
    float out[10] = {0};
 
    int b = 0, e = 9;  // b - bedin , e - end
 
    for(int i = 0 ; i < 10 ; ++i)
    {
        if(arr[i] >= 0)
        {
            out[b++] = arr[i];
        }
        else
        {
            out[e--] = arr[i];
        }
    }
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 6
31.01.2013, 14:22  [ТС] 3
вводить с клавиатуры надо было))
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.01.2013, 14:35 4
Не слышал об алгоритмах которые зависят от ввода\вывода.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 6
31.01.2013, 14:37  [ТС] 5
Нач
| вывод enter numbers
| |цикл i = 0; i < N; i++
| |ввод a[i]
| |цикл i = 0; i < N - 1; i++)
| |цикл int j = i + 1; j < N; j++
| |если a[i] < a[j])
| |тогда t = a[i];a[i] = a[j];a[j] = t
| |цикл i = 0; i < N; ++i
| |Вывод a[i]
| все
Кон
вот чето нафигачил похоже на алгоритм моей проги ?)
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
31.01.2013, 14:41 6
Похоже, но вы реализовали сортировку пузырьком. Для решения можно использовать но сложность вашего алгоритма побольше..Если вас такое устраивает - тогда вперед.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 6
31.01.2013, 18:53  [ТС] 7
Вот пытался сделать так как требовалось , гляньте свежим взгялдом пожалуйста и исправите. Поставил вопросы там где не знаю что писать.

I. 1) Известные объекты: n=10, i, j, a[n], t
2) Действия над объектами: арифметические.
3) Найти: массив а[i].

II. 1) Объекты с которыми будет оперировать алгоритм: ?
2) Классификация объектов: ?
– исходные: ?
– искомые: ?
3) Способ задания значений: с клавиатуры

III. Алгоритм – Преобразовывает Массив состоящий из 10 вещественных элементов, распологая положительные элементы слева, а отрицательные элименты справа.
Цел n=10, i, j, a[n], t
Начало
Вывод Enter numbers
Для i = 0; i < N; i++
ввод массива a[i]
для i = 0; i < N - 1; i++
для j = i + 1; j < N; j++
если массив a[i] < массива a[j]
Тогда t = a[i];a[i] = a[j];a[j] = t
для i = 0; i < N; ++i
вывод массива a[i]
все
конец

Код программы (borland c++) отредактирован - рабочий


Код
#include <iostream.h>
#define N 10
int
main(){
int i, j;
float a[N], t;
cout << "Enter " << N << " numbers: ";
for(i = 0; i < N; i++)
cin >> a[i];
for(i = 0; i < N - 1; i++)
for(j = i + 1; j < N; j++)
if (a[i] < a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
for(i = 0; i < N; ++i)
cout << a[i] << ' ';
cout << endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2013, 18:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Преобразовать одномерный массив
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не...

Преобразовать одномерный массив.
po teme sortirovka massivov v odnomernom massive,sosto9wem iz n celo4islennyx elementov:...

преобразовать одномерный массив
Написать программу, с использованием вложенных процедур или функций, которая преобразует одномерный...

Преобразовать одномерный массив
Доброго времени суток, спасибо, что откликнулись. Ситуация такова что нужно выполнить следующую...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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