Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 4 / 3
Регистрация: 07.12.2009
Сообщений: 62

Процедуры

25.03.2010, 16:27. Показов 751. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Начал писать прогу, на процедуре сортировки по возрастанию в конце массива выдается число(причем при любых значениях элементов вектора одинаковое-2573). Помогите избавиться от этого.
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
33
34
35
36
37
38
39
40
41
42
program prim;
uses wincrt;
const d=30;
var
    a:array[1..d] of integer;
procedure vivod;
  var i:byte;
begin
{randomize;}
  for i:=1 to d do
    begin
      a[i]:=random(10)-1;
        write(a[i],' ');
    end;
end;
 
procedure sort;
var j,i:byte;
    c:integer;
begin
for i:=high(a) downto 1 do
  begin
    for j:=0 to i-1 do
      if (a[j]>a[j+1]) then
        begin
          c:=a[j];
            a[j]:=a[j+1];
              a[j+1]:=c;
        end;
  end;
end;
procedure vivod2;
var i:byte;
begin
  for i:=1 to d do
    write(a[i],' ');
end;
begin
vivod;[QUOTE][QUOTE][/QUOTE][/QUOTE]
sort;
vivod2;
end.
Миниатюры
Процедуры  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2010, 16:27
Ответы с готовыми решениями:

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям...

Процедуры
Добрый вечер,посмотрите пожалуйста программу,мне ее нужно с процедурами написать,явно есть косяки,но я их устранить не пойму как,вот...

4
 Аватар для yanyk1n
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
25.03.2010, 16:35
Исправьте процедуру
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure sort;
var j,i:byte;
    c:integer;
begin
for i:=d downto 1 do
  begin
    for j:=1 to i-1 do
      if (a[j]>a[j+1]) then
        begin
          c:=a[j];
            a[j]:=a[j+1];
              a[j+1]:=c;
        end;
  end;
end;
1
4 / 4 / 3
Регистрация: 07.12.2009
Сообщений: 62
25.03.2010, 17:49  [ТС]
Продолжаю тему. Когда присваиваю функцию min к z, то выдается какое то несуразное число, причем всегда разное. Почему так?
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
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
80
81
82
83
84
85
86
87
program prim;
uses wincrt;
const d=30;
var
 
    k,min1,z,i:integer;
    a:array[1..d] of integer;
procedure vivod;
  var i:byte;
begin
{randomize;}
  for i:=1 to d do
    begin
      a[i]:=random(10)-1;
        write(a[i],' ');
    end;
end;
 
procedure sort;
var j,i:byte;
    c:integer;
begin
for i:=high(a) downto 1 do
  begin
    for j:=1 to i-1 do
      if (a[j]>a[j+1]) then
        begin
          c:=a[j];
            a[j]:=a[j+1];
              a[j+1]:=c;
        end;
  end;
end;
 
function max:integer ;
var i:integer;
    max1:integer;
begin
   max1:=1;
  for i:=1 to d do
   begin
     if (a[i]>max1) then
       max1:=a[i];
   end;
writeln(max1);
end;
 
function min(min1:integer):integer ;
var i:integer;
begin
   min1:=1;
  for i:=1 to d do
   begin
     if (a[i]<min1) then
       min1:=a[i];
   end;
writeln(min1);
end;
 
procedure vivod2;
var i:byte;
begin
  for i:=1 to d do
    write(a[i],' ');
end;
begin
vivod;
writeln;
sort;
writeln('Вектор упорядоченный по возрастанию');
vivod2;
writeln;
z:=min(min1);
writeln(z);
for i:=1 to d do
  begin
    if (a[i]=a[i+1]) then
      k:=1;
      break;
    end;
if (k=1) then
for i:=1 to d do
  begin
    a[i]:=a[i]*z;
    write(a[i],' ');
  end;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.03.2010, 14:27
Цитата Сообщение от spprog Посмотреть сообщение
z:=min(min1);
Ты бы шепнул программе что за хрень такая min1, а то она теряется в догадках и выдает что вздумает.
Ну а то вообще шедевр поиска минимального значения из одного числа.
Pascal
1
2
3
4
5
6
7
8
9
10
11
function min(min1:integer):integer ;
var i:integer;
begin
   min1:=1;
  for i:=1 to d do
   begin
     if (a[i]<min1) then
       min1:=a[i];
   end;
writeln(min1);
end;
Нужно же наверное как-то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
function min:integer ;
var min1,i:integer;
begin
   min1:=a[1];
  for i:=1 to d do
   begin
     if (a[i]<min1) then
       min1:=a[i];
   end;
Min:=min1;
end;
Добавлено через 2 минуты
Тогда в программе писать
Pascal
1
2
z:=Min;
writeln(z);
Но вообще программы так не пишут.
0
4 / 4 / 3
Регистрация: 07.12.2009
Сообщений: 62
26.03.2010, 16:15  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Но вообще программы так не пишут.
Как так? Не понял намека.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2010, 16:15
Помогаю со студенческими работами здесь

Процедуры
1. В матрице: 1.процедура ввод 2.процедура вывод 3.процедура,который считать количество эл-тов=0, и функция, который...

Процедуры
Помогите написать процедуру, которая в заданном одномерном массиве меняет местами минимальный и последний элемент . Применить эту...

Процедуры
Помогите пожалуйста составить процедуру, исх данными которой являются матрица A(NxN). Результаты процедуру указаны ниже. Для проверки...

Процедуры
Заданы два массива D(3,3) T(4,4).В каждом массиве сумму четных элементов,вычесть из каждого элемента побочной диагонали.Ввод,вывод,поиск...

Процедуры
Даны действительные числа a, b, c, d. Вычислить: y=(pa+pb+pc+pd)/4, если px=4{x}^{4}+3{x}^{3}+2{x}^{2}+x+0,5.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 Слева синяя линия - количество заказов - идёт вниз, работники не справляются. Справа синяя линяя идёт вверх, потому. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru