Тема: Потрібна допомога,Pascal, масиви
х={1.5;0.3;-2.5;6.2;-1.1;3.5;0.1;-4.5}
Сформуйте вектор елементи якого являються помножені на k елементів масиву.Впорядкуйте по зростанню.k - це номер завдання(23)
У мене проблема, відповідь - 0000
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Потрібна допомога,Pascal, масиви
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
х={1.5;0.3;-2.5;6.2;-1.1;3.5;0.1;-4.5}
Сформуйте вектор елементи якого являються помножені на k елементів масиву.Впорядкуйте по зростанню.k - це номер завдання(23)
У мене проблема, відповідь - 0000
Давайте код сюди, у тег code, будем розбиратись.
п.с. Зразу декілька порад:
1. Робіть відступи (після begin два пробіли, після end два бекспейса).
2. щоб результат 0000000 перетворивсі на:
0
0
0
0
0
0
треба писати writeln(...) замість write(...)
3. Ви присвоїли елементи масиву х[...], але жодним чином не чипали масив y[..] в ньому довільні значення, і ви їх намагаєтесь якось порівнювати.
А потім ще щось там міняєте місцями і... далі виводите (звісно що там нулі)
program name;
var x,y: array[1..8] of real;
i,j :integer;a:real;
begin
x[1]:=1.5;
x[2]:=0.3;
x[3]:=-2.5;
x[4]:=6.2;
x[5]:=-1.1;
x[6]:=3.5;
x[7]:=0.1;
x[8]:=-4.5;
for i:= 1 to 8 do
for j:=i+1 to 8 do
if y[i]>y[j]then
begin
a:=y[j];
y[j]:=y[i];
y[i]:=a;
end;
for i:=1 to 8 do
write(y[i])
end.
Загалом підтримую пана Chemist-i, але маю і кілька своїх зауважень:
1. В завданні щось є про множення на 23, в програмі цього нема.
2. (Не обов'язково, і може працювати не у всіх версіях паскалю) Масиви можна ініціалізувати:
var numbers: array[1..5] of integer = ( 1, 2, 3, 4, 5 );
Це значно красивіше, ніж те, що у вас.
3. Перед тим, як сортувати, визначиться із алгоритмом сортування. Те, що у вас зараз - це сортування вибірками із купою зайвих обмінів, яке деякі початківці вважають сортуванням бульбашкою (до речі, я теж колись так вважав).
4. Поправка для пана Chemist-i: змінні, які не чіпали, в паскалі не довільні (це не C), а нулі. Що ми й бачимо. Але все одно їх бажано ініціалізовувати.
Підправив код
program name;
var X,Y:array[1..8] of real;
i,j:integer; buf: real;
begin
X[1]:=-1.5;
X[2]:=0.3;
X[3]:=-2.5;
X[4]:=6.2;
X[5]:=-1.1;
X[6]:=3.5;
X[7]:=0.1;
X[8]:=-4.5;
for i:=1 to 8 do
Y[i]:=X[i]*23;
for i:=1 to 8 do
for j:=i+1 to 8 do
if Y[i]>Y[j] then
begin
buf:=Y[j];
Y[j]:=Y[i];
Y[i]:=buf;
end;
for i:=1 to 8 do
write(Y[i],' ');
end.
Працює, тільки відступів ви так і не робите, давайте я зроблю то за вас:
program name;
var X,Y:array[1..8] of real;
i,j:integer; buf: real;
begin
X[1]:=-1.5;
X[2]:=0.3;
X[3]:=-2.5;
X[4]:=6.2;
X[5]:=-1.1;
X[6]:=3.5;
X[7]:=0.1;
X[8]:=-4.5;
for i:=1 to 8 do
Y[i]:=X[i]*23;
for i:=1 to 8 do
for j:=i+1 to 8 do
if Y[i]>Y[j] then
begin
buf:=Y[j];
Y[j]:=Y[i];
Y[i]:=buf;
end;
for i:=1 to 8 do
write(Y[i],' ');
end.
Результат
-103.5 -57.5 -34.5 -25.3 2.3 6.9 80.5 142.6
Посилання:
http://pascalabc.net/WDE/?file=00000.pas
Я щось забув про відступи...Все, з сьогоднішнього дня буду робити)
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися