IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> одномерный массив, немогу разобраться , уже 4 вечер
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Разработать в среде Turbo Pascal программу осуществляющую сдвиг элементов массива на одну позицию влево.
Дан одномерный массив ненулевых целых чисел размера N.
1. Найти номера одинаковых элементов, вывести эти номера в порядке возрастания, а так же квадрат суммы этих элементов;
2. Вставить элемент с нулевым значением перед минимальным и после максимального элемента массива;
3. Осуществить сдвиг элементов массива влево на одну позицию . Последний элемент полученного массива положительно равен 0.
Для отладки программы исходный массив сформировать с помощью генератора случайных чисел. / Заранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


А покажите, что уже получилось за 4 вечера.

Помочь-то мне не сложно, но неприятно "стирать чьи то носки".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 13.04.2016 3:54) *

А покажите, что уже получилось за 4 вечера.

Помочь-то мне не сложно, но неприятно "стирать чьи то носки".


const N = 10; //Описание констант
var a: array [1..N] of integer; //Описание переменных
begin //Начало программы
for var i:=1 to N do //Описание массива и вывод его
a[i] := Random(100);
writeln('Элементы массива: ');
for var i:=1 to N do
write(a[i],' ');
writeln;

for var i:=1 to N-1 do //Сдвиг эл-ов массива
a[i] := a[i+1];
a[N] := 0;

writeln('После сдвига влево: ');//Вывод массива
for var i:=1 to N do
write(a[i],' ');
writeln;
end. //Конец программ

//Сдвиг элементов в одномерном массиве влево


Вы верно подметили!

Сообщение отредактировано: Renat -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Вечером приеду и посмотрю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


А для 1-го задания не понял смысл.
Например, что должно быть для
1 2 3 4 5 6 7 8 9 1
или для
1 2 3 3 4 2 2 2 1 1
program test;

const
N = 10; //Описание констант
var
a: array [1..N] of integer; //Описание переменных
i: integer;
Imin, Imax: integer;
begin //Начало программы
randomize;
{Вставить элемент с нулевым значением перед минимальным
и после максимального элемента массива}
for i := 1 to N do //Описание массива и вывод его
a[i] := Random(100);
writeln('Элементы массива: ');
for i := 1 to N do
Write(a[i], ' ');
writeln;
Imin := 1;
for i := 2 to N do
if a[Imin] > a[i] then
Imin := i;
for i := N downto Imin + 1 do
a[i] := a[i - 1];
a[Imin] := 0;
writeln('После вставки 0 перед минимальным: ');//Вывод массива
for i := 1 to N do
Write(a[i], ' ');
writeln;
Imax := 1;
for i := 2 to N do
if a[Imax] < a[i] then
Imax := i;
for i := N downto Imax + 2 do
a[i] := a[i - 1];
if Imax + 1 <= N then
a[Imax + 1] := 0;
writeln('После вставки 0 после максимального: ');//Вывод массива
for i := 1 to N do
Write(a[i], ' ');
writeln;
{Осуществить сдвиг элементов массива влево на одну
позицию . Последний элемент полученного массива
положительно равен 0.}
for i := 1 to N - 1 do //Сдвиг эл-ов массива
a[i] := a[i + 1];
a[N] := 0;
writeln('После сдвига влево: ');//Вывод массива
for i := 1 to N do
Write(a[i], ' ');
writeln;
end. //Конец программ
//Сдвиг элементов в одномерном массиве влево
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


а мне кажется что , вот например :
1, 2, 3, 5, 8, 13 и т.д

1+2=3
2+3=5 и так до 13 ,как указано в примере
Последовательность Фибоначе
Еще однин пример
begin
mas[0] :=5;
mas [1]:= 10
for I :=2 to 7 do

mas[i]:= mas[i-2] + mas[i-1];
writeln (mas) ;
end.
на экран выведет ;
5 10 15 25 40 65 105 170
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Напомню
Цитата(Renat @ 13.04.2016 0:09) *

Дан одномерный массив ненулевых целых чисел размера N.
1. Найти номера одинаковых элементов, вывести эти номера в порядке возрастания, а так же квадрат суммы этих элементов;

И ни слова о Фобоначчи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 14.04.2016 12:44) *

Напомню
Цитата(Renat @ 13.04.2016 0:09) *

Дан одномерный массив ненулевых целых чисел размера N.
1. Найти номера одинаковых элементов, вывести эти номера в порядке возрастания, а так же квадрат суммы этих элементов;

И ни слова о Фобоначчи.



Мне подсказали тут ,что несколько заданий . Например : массив состоит из 25 чисел ,5й и 20й одинаковые ,и находишь их квадрат и ,вроде, выходит одно число
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


А если там две пары одинаковых?
1 2 3 2 5 7 3 9
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 15.04.2016 1:38) *

А если там две пары одинаковых?
1 2 3 2 5 7 3 9


даже не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Пусть будет вывод только первого встреченного повторяющегося числа
program test;

const
N = 10; //Описание констант
var
a: array [1..N] of integer; //Описание переменных
i, j: integer;
Naiden: boolean;
Sum: integer;
begin //Начало программы
randomize;
for i := 1 to N do //Описание массива и вывод его
a[i] := Random(100);
writeln('Элементы массива: ');
for i := 1 to N do
Write(a[i], ' ');
writeln;
{найти}
Sum := 0;
Naiden := False;
for i := 1 to N do
begin
for j := i + 1 to N do
if a[i] = a[j] then
begin
if not Naiden then
begin
Sum := a[i];
Write(i);
end;
Naiden := True;
Write(' ', j);
Sum := Sum + a[j];
end;
if Naiden then
break;
end;
if Naiden then
begin
writeln;
writeln(Sum * Sum);
end
else
writeln('Нет одинаковых чисел');
end.


Пример работы с двумя повторяющимися числами (65 и 19) выводятся данные только по 65
Код
Элементы массива:
51 78 65 19 85 15 65 19 89 66
3 7
16900
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 15.04.2016 1:38) *

А если там две пары одинаковых?
1 2 3 2 5 7 3 9


даже не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name