Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 34
1

Где ошибка?

16.11.2016, 22:54. Показов 549. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
program Project1;
{$APPTYPE CONSOLE}
type
mas=array of real;
var
A:mas;
min,z:real;
k,i,m,b,c:integer;
procedure zapoln(k1:integer;var a1:mas);
var i:integer;
begin
randomize;
for i:=1 to k1 do
a1[i]:=random(10);
end;
procedure poiskmin(a2:mas;k2:integer;var min1:real;m1:integer);
var i:integer;
begin
min1:=a2[1];m1:=1;
for i:=1 to k2 do
if a2[i]<min1 then
begin
min1:=a2[i];
m1:=i;
end;end;
procedure smena(b4,k4:integer;z4,min4:real;var a4:mas);
var i:integer;
begin
z4:=min4;
min4:=a4[b4];
a4[b4]:=z4;
end;
procedure delenie(c3:integer;min3:real;var a3:mas);
var i:integer;
begin
for i:=1 to c3 do
a[i]:=a[i]/min3;
end;
begin
writeln('vvedite razmernost');
readln(k);
setlength(a,k);
zapoln(k,a);
poiskmin(a,k,min,m);
writeln('min element= ',min:8:3);
writeln('-----------------------------------------');
writeln('do smeni: ');
for i:=1 to k do
writeln(a[i]:8:3);
writeln('-----------------------------------------');
writeln('vvedite nomer elementa dlya smeni');
readln(b);
smena(b,k,z,min,a);
writeln('-----------------------------------------');
writeln('posle smeni:');
for i:=1 to k do
writeln(a[i]:8:3);
writeln('-----------------------------------------');
writeln('vvedite element do kotorogo vipolnyat delenie');
readln(c);
delenie(c,min,a);
writeln('posle deleniya: ');
for i:=1 to k do
writeln(a[i]:8:3);
readln;
end.
Программа должна поменять местами элемент с заданным номером и самый левый
минимальный элемент, после чего все элементы, имеющие номера с
первого по заданный, поделить на найденное минимальное значение.
У меня всё выполняется , но когда меняет местами , то минимальное ставиться на позицию b , но на место минимального не приходит , то что стояло на позиции b.
В чём тут ошибка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2016, 22:54
Ответы с готовыми решениями:

Где ошибка?
Есть задание: Дано текстовый файл 1.txt. Вывести на экран все строки файла, начинающиеся на символ...

Где ошибка?
Народ где ошыбка? procedure TForm1.Button1Click(Sender: TObject); var...

Где ошибка
var Form1: TForm1; f:tstringlist; f1:tstringlist; i,j,n:integer; implementation ...

Где ошибка?
procedure TForm12._onMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin...

4
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,380
16.11.2016, 22:59 2
Динамический массив начинается не с 1, а с 0 элемента, а потому не
Delphi
1
for i:=1 to k1 do
а
Delphi
1
for i:=0 to k1-1 do
ну и везде поправить надо
0
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 34
16.11.2016, 23:24  [ТС] 3
Пытливый, теперь вообще не меняет

Добавлено через 18 минут
Что ещё посоветуете?
0
пофигист широкого профиля
4735 / 3168 / 860
Регистрация: 15.07.2013
Сообщений: 18,255
17.11.2016, 01:07 4
Помимо совета Пытливый #2
могу еще посоветовать две вещи.
Первое это в процедуре smena параметр min4 объявить как var.
Второе это использовать нормальное форматирование кода. Он же у вас просто нечитаемый!
0
82 / 82 / 39
Регистрация: 17.02.2016
Сообщений: 464
17.11.2016, 01:35 5
код отформатирован
Кликните здесь для просмотра всего текста
Delphi
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program Project1;
{$APPTYPE CONSOLE}
 
type
  mas = array of real;
 
var
  A: mas;
  min, z: real;
  k, i, m, b, c: integer;
 
procedure zapoln(k1: integer; var a1: mas);
var
  i: integer;
begin
  randomize;
  for i := 1 to k1 do
    a1[i] := random(10);
end;
 
procedure poiskmin(a2: mas; k2: integer; var min1: real; m1: integer);
var
  i: integer;
begin
  min1 := a2[1];
  m1 := 1;
  for i := 1 to k2 do
    if a2[i] < min1 then
    begin
      min1 := a2[i];
      m1 := i;
    end;
end;
 
procedure smena(b4, k4: integer; z4, min4: real; var a4: mas);
var
  i: integer;
begin
  z4 := min4;
  min4 := a4[b4];
  a4[b4] := z4;
end;
 
procedure delenie(c3: integer; min3: real; var a3: mas);
var
  i: integer;
begin
  for i := 1 to c3 do
    a[i] := a[i] / min3;
end;
 
begin
  writeln('vvedite razmernost');
  readln(k);
  setlength(a, k);
  zapoln(k, a);
  poiskmin(a, k, min, m);
  writeln('min element= ',min:8:3);
  writeln('-----------------------------------------');
  writeln('do smeni: ');
  for i := 1 to k do
  writeln(a[i]:8:3);
    writeln('-----------------------------------------');
  writeln('vvedite nomer elementa dlya smeni');
  readln(b);
  smena(b, k, z, min, a);
  writeln('-----------------------------------------');
  writeln('posle smeni:');
  for i := 1 to k do
  writeln(a[i]:8:3);
    writeln('-----------------------------------------');
  writeln('vvedite element do kotorogo vipolnyat delenie');
  readln(c);
  delenie(c, min, a);
  writeln('posle deleniya: ');
  for i := 1 to k do
  writeln(a[i]:8:3);
    readln;
end.

зачем передавать в каждою процедуру ваш массив
как по мне проще будет работать на прямую, так как у вас он объявлен глобально да и размер массива (у вас переменная К, К1 и тд) можно получать Length(A)
у всех процедурах где идет работа с массивом нужно начинать работу с 0 т.е
Delphi
1
for i := 0 to Length(A)-1 do
и тд
0
17.11.2016, 01:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2016, 01:35
Помогаю со студенческими работами здесь

где ошибка?
задание тут вот сам код: program Project1; {$APPTYPE CONSOLE} uses SysUtils,

Где ошибка?
Подскажите пожалуйста почему оно ругается?: procedure TForm1.DrawBranch(x1,y1,x2,y2: integer);...

Где ошибка?
program zad194; {$APPTYPE CONSOLE} uses SysUtils; var X : array of integer; A1,...

где ошибка?
есть отчет с проходной о входе выходе пропусков, код перегоняет данные из 1 таблици в другую и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru