Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 13

Не разберусь с программами.

28.02.2011, 11:40. Показов 3538. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Помогите разобраться с двумя программами, а именно скажите где неправильно.
1)Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить инверсию отдельно для 1-ой и 2-ой половин массива
Исходный массив:
4 -5 3 10 -4 -6 8 -10 1 0
Результат:
-4 10 3 -5 4 0 1 -10 8 -6

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses crt;
const n=10;
var
a:array[1..10] of integer;
i,c:integer;
begin
  clrscr;
  randomize;
  for i:=1 to 10 do
  begin
    a[i]:=random(21)-10;
    write(a[i]:3);
    end;
  for i:=1 to n div 2 do
  begin
    c:=a[i];
    a[i]:=a[n+1-i];
    a[n+1-i]:=c;
  end;
  for i:=2 to n div 8 do
  begin
    c:=a[i];
    a[i]:=a[n+1-i];
    a[n+1-i]:=c;
  end;
  writeln;
  for i:=1 to 10 do
  write(a[i]:3);
end.
P.S Как сделать инверсию, помогите пожалуйста.

2)Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить циклический сдвиг ВПРАВО.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses crt;
const n=10;
var a:array[1..n] of integer;
i,c,j:integer;
begin
clrscr;
randomize;
for i:=1 to n do
begin
a[i]:=random(10);
write(a[i]:3);
end;
c:=a[1];
for i:=1 downto n+1 do
a[i]:=a[n];
a[n]:=c;
writeln;
for i:=1 to n do
write(a[i]:3);
end.
P.S Как передвинуть вправо если влево можно передвинуть заменив "for i:=1 downto n+1 do" на "for i:=1 to n-1 do".
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2011, 11:40
Ответы с готовыми решениями:

Не разберусь со строками в С++
Решил взяться за изучение C++Builder, да пришел в тупик((( Есть простая программа, на форме есть поле ввода и кнопка. После нажатия...

Чего-то не разберусь
Как сделать например вот такую простую деталь на лиспе? Я не могу найти нормального материала в инете, как-будто на своем компе что-то...

С кодом не разберусь
Имеется пример (представлен ниже). Использую его в своей интерпретации, а именно массив yVals надо заполнить собственными значениями. Я...

9
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2011, 11:58
Посмотри здесь
Стандартные операции с массивами (матрицами)
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 13
28.02.2011, 12:09  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Спасибо, смотрел, но что-то я там не понял как сдвигают, вот и обратился за помощью.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2011, 12:23
Цитата Сообщение от Saject Посмотреть сообщение
я там не понял как сдвигают
Сдвиг вправо на 1.
Pascal
1
2
3
4
c:=a[n];//запомним последний
for i:=n downto 2 do//от второго все сдвинем вправо на 1
a[i]:=a[i-1];
a[1]:=c;//последний вперед
1
 Аватар для kofee"k
109 / 109 / 91
Регистрация: 08.01.2011
Сообщений: 171
28.02.2011, 12:24
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program tt;
uses crt;
const n=10;
var a:array[1..n] of integer;
i,k,j,r:integer;
begin
clrscr;
writeln('На сколько сдвиг?');
readln(k);
randomize;
for i:=1 to n do
begin
a[i]:=random(20)-10;
write(a[i],' ');
end;
 for i:=1 to k do
  begin
   for j:=n downto 1 do
    if (j=n) then r:=a[n] else a[j+1]:=a[j];
   a[1]:=r;
  end;
 writeln;
 for i:=1 to n do
  write(a[i],' ');
 readln
end.
end.
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 13
28.02.2011, 13:16  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Сдвиг вправо на 1.
Pascal
1
2
3
4
c:=a[n];//запомним последний
for i:=n downto 2 do//от второго все сдвинем вправо на 1
a[i]:=a[i-1];
a[1]:=c;//последний вперед
Спасибо, теперь все понятно

Добавлено через 48 минут
Посмотрите пожалуйста, что не так в первой задаче...
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2011, 13:26
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const n=10;
var a:array[1..10] of integer;
    i,k,c:integer;
begin
  clrscr;
  randomize;
  writeln('Исходный массив:');
  for i:=1 to n do
   begin
    a[i]:=random(21)-10;
    write(a[i]:4);
   end;
  writeln;
  k:=n div 2;
  for i:=1 to k div 2 do
   begin
    c:=a[i];
    a[i]:=a[k+1-i];
    a[k+1-i]:=c;
  end;
  for i:=k+1 to k+(n-k) div 2 do
  begin
    c:=a[i];
    a[i]:=a[n+k+1-i];
    a[n+k+1-i]:=c;
  end;
  writeln('Инверсии половин массива:');
  for i:=1 to n do
  write(a[i]:4);
  readln
end.
1
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 13
28.02.2011, 13:30  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const n=10;
var a:array[1..10] of integer;
    i,k,c:integer;
begin
  clrscr;
  randomize;
  writeln('Исходный массив:');
  for i:=1 to n do
   begin
    a[i]:=random(21)-10;
    write(a[i]:4);
   end;
  writeln;
 [B][COLOR="#ff0000"] k:=n div 2;[/COLOR][/B]
  for i:=1 to k div 2 do
   begin
    c:=a[i];
    a[i]:=a[k+1-i];
    a[k+1-i]:=c;
  end;
  [B][COLOR="Red"]for i:=k+1 to k+(n-k) div 2 do[/COLOR][/B]
  begin
    c:=a[i];
    a[i]:=a[n+k+1-i];
    a[n+k+1-i]:=c;
  end;
  writeln('Инверсии половин массива:');
  for i:=1 to n do
  write(a[i]:4);
  readln
end.
Спасибо можете пожалуйста пояснить, что делают выше отмеченные строчки, это так для себя.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2011, 14:19
Не выделяй строки цветом, пиши комментарии...

Добавлено через 1 минуту
k:=n div 2; неужели неясно что это половина размера массива?
for i:=k+1 to k+(n-k) div 2 do от первого элемента после середины до середины второй половины, у тебя от 6 до 8.
0
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 13
28.02.2011, 14:33  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Не выделяй строки цветом, пиши комментарии...

Добавлено через 1 минуту
k:=n div 2; неужели неясно что это половина размера массива?
for i:=k+1 to k+(n-k) div 2 do от первого элемента после середины до середины второй половины, у тебя от 6 до 8.
"k:=n div 2; неужели неясно что это половина размера массива?" - С Этим и правдо тупанул, уже понял после того как написал, как говорится сначала думать надо а потом делать, а вышло наоборот.
А за второе спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2011, 14:33
Помогаю со студенческими работами здесь

ERRORS_не разберусь
#include <vcl.h> //áèáëèîòåêè, íåîáõîäèìûå äëÿ ðàáîòû ïðîãðàììû #include <math.h> #pragma hdrstop #include "Main.h" #include...

Не разберусь с программированием
Пишу программу, но при выполнении пишет "задайте Х" кто может, помогите плисс составлением, завтра по утру сдаваться надо, а я в этом не...

Не разберусь с программой
Клеточные автоматы. Выдаёт ошибку 26 Type mismatch. Как исправить? Program kletochn_avtomat; Uses crt; Var S1,S2:array ...

Не разберусь с JPanel
Никак не разберусь. Прикрепил файл, сейчас опишу что я думаю насчет вызовов: 1. Из Main вызываю конструктор Menu и устанавливаю...

Не разберусь с циклом
Здравствуйте! Помогите советом) Делаю тесты. Все вопросы на одной странице. Использую следующий код: echo'<form...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru