1 Востаннє редагувалося muron-yanitskiy (17.06.2014 21:49:58)

Тема: Потрібна допомога,Pascal, масиви

х={1.5;0.3;-2.5;6.2;-1.1;3.5;0.1;-4.5}
Сформуйте вектор елементи якого являються помножені на k елементів масиву.Впорядкуйте по зростанню.k - це номер завдання(23)
У мене проблема, відповідь - 0000

Post's attachments

Pascal.png 114.17 kb, 287 downloads since 2014-06-17 

2 Востаннє редагувалося Chemist-i (17.06.2014 22:07:54)

Re: Потрібна допомога,Pascal, масиви

Давайте код сюди, у тег code, будем розбиратись.
п.с. Зразу декілька порад:
1. Робіть відступи (після begin два пробіли, після end два бекспейса).
2. щоб результат 0000000 перетворивсі на:

0
0
0
0
0
0

треба писати writeln(...) замість write(...)
3. Ви присвоїли елементи масиву х[...], але жодним чином не чипали масив y[..] в ньому довільні значення, і ви їх намагаєтесь якось порівнювати.
А потім ще щось там міняєте місцями і... далі виводите (звісно що там нулі)

Подякували: muron-yanitskiy1

3

Re: Потрібна допомога,Pascal, масиви

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.

4 Востаннє редагувалося koala (17.06.2014 23:13:35)

Re: Потрібна допомога,Pascal, масиви

Загалом підтримую пана Chemist-i, але маю і кілька своїх зауважень:
1. В завданні щось є про множення на 23, в програмі цього нема.
2. (Не обов'язково, і може працювати не у всіх версіях паскалю) Масиви можна ініціалізувати:

var numbers: array[1..5] of integer = ( 1, 2, 3, 4, 5 );

Це значно красивіше, ніж те, що у вас.
3. Перед тим, як сортувати, визначиться із алгоритмом сортування. Те, що у вас зараз - це сортування вибірками із купою зайвих обмінів, яке деякі початківці вважають сортуванням бульбашкою (до речі, я теж колись так вважав).
4. Поправка для пана Chemist-i: змінні, які не чіпали, в паскалі не довільні (це не C), а нулі. Що ми й бачимо. Але все одно їх бажано ініціалізовувати.

Подякували: Chemist-i1

5

Re: Потрібна допомога,Pascal, масиви

koala

Прихований текст

4. Поправка для пана Chemist-i: змінні, які не чіпали, в паскалі не довільні (це не C), а нулі. Що ми й бачимо. Але все одно їх бажано ініціалізовувати.

Слушне зауваження, дякую, буду знати (де в мене пару тактів зайвих витрачаєсі при об'явлені змінних)

6

Re: Потрібна допомога,Pascal, масиви

Прихований текст
Chemist-i написав:

koala

Прихований текст

4. Поправка для пана Chemist-i: змінні, які не чіпали, в паскалі не довільні (це не C), а нулі. Що ми й бачимо. Але все одно їх бажано ініціалізовувати.

Слушне зауваження, дякую, буду знати (де в мене пару тактів зайвих витрачаєсі при об'явлені змінних)

А ви їх ініціалізуйте при створенні, аналогічно з масивом (тільки в різних версіях є відмінності, що десь треба =, а десь := ставити).

Подякували: Chemist-i, muron-yanitskiy2

7 Востаннє редагувалося muron-yanitskiy (18.06.2014 17:40:21)

Re: Потрібна допомога,Pascal, масиви

Підправив код

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.

8 Востаннє редагувалося Chemist-i (18.06.2014 18:09:53)

Re: Потрібна допомога,Pascal, масиви

Працює, тільки відступів ви так і не робите, давайте я зроблю то за вас:

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

9 Востаннє редагувалося muron-yanitskiy (18.06.2014 21:00:00)

Re: Потрібна допомога,Pascal, масиви

Я щось забув про відступи...Все, з сьогоднішнього дня буду робити)

Подякували: quez1