• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль

  • Автор темы Автор темы anka950
  • Дата начала Дата начала

anka950

Ученик
Регистрация
21 Мар 2013
Сообщения
9
Реакции
0
Баллы
0
Паскаль

Найти наибольшие элементы и их порядковые номера массивов x(15) и y(12)
Через процедуру или функцию
Помогите пожалуйста
 
Найти наибольшие элементы и их порядковые номера массивов x(15) и y(12)
Через процедуру или функцию
Помогите пожалуйста
Аня, постыдились бы с подобной ерундой вылезать! Мой Вам совет - беритесь за учебу, пока не поздно. Вот как раз прекрасная возможность получить навыки работы с основами Паскаля.
А если Вы планируете всё обучение за счет форумов проехать, ничего не делая и ничего не осваивая - не выйдет, уж поверьте.
Успехов!
P.S. С удовольствием поможем разобраться с проблемами и исправить ошибки. Но это при условии, что хоть что-то будет Вами сделано. Пока же Ваше "помогите" означает "напишите, а я тупо бездумно скатаю и сдам".
 
Что мне делать если я процедуры не понимаю?!
 
Var x:array[1..15] of word;
k,m,i,n:word; mas:word;
Y:array[1..12] of word;
Begin
CLRSCR;
n:=15;
Read(x[1]);
max:=x;
For i:=2 to n do begin
Read(x);
If max<x then begin
max:=x; k:=i;end;end;
Writeln('максимум: ',max);
Writeln ('номер максимума: ',k);
Readkey ;
End.
 
Так, почти хорошо. Правда, сразу замечание: команды ClrScr и ReadKey в состав языка не входят, а реализуются через подключаемый модуль CRT, а потому, если уж Вы их используете, необходимо в самом начале поставить "Uses CRT;". Далее, внимательнее относитесь к написанию идентификаторов: в разделе описания Вы задаете переменную "mas", а в теле программы работаете с переменной "max". Уж выберите что-то одно. Поймите, текст программы - это не письмо возлюбленному, который сквозь пальцы посмотрит на описки, неряшливости и пр., здесь требуется абсолютная точность и выверенность каждого значка, иначе компьютер начнет плеваться, ибо "общих соображений" он напрочь не понимает. Продолжаем. Исходное значение максимума Вы задаете, как x, а надо - x[1]. Массив Y вообще не введен и не обработан. Потом - "слепой" ввод крайне неудобен, лучше с подсказками. Ну вроде всё.

Код:
[COLOR=Red][B]Uses CRT;
[/B][/COLOR]Var 
 x:array[1..15] of word;
 k,i,n:word; 
 ma[COLOR=Red][B]x[/B][/COLOR]:word;
 Y:array[1..12] of word;
Begin
 CLRSCR;
 n:=15;
 [COLOR=Red][B]k:=1;[/B][/COLOR]
 write('x[ 1]= ');
 Read[COLOR=Red][B]ln[/B][/COLOR](x[1]);
 max:=x[[COLOR=Red][B]1[/B][/COLOR]];
 For i:=2 to n do 
  begin 
   [COLOR=Red][B]write('x[',i:2,']= ');[/B][/COLOR]
   Read[COLOR=Red][B]ln[/B][/COLOR](x[i]);
   If max<x[i] then 
    begin
     max:=x[i]; 
     k:=i;
    end;
  end;
 Writeln('максимум [COLOR=Red][B]в массиве x[/B][/COLOR]: ',max);
 Writeln('номер [COLOR=Red][B]максимума  в массиве x[/B][/COLOR]: ',k);
 Writeln;
[COLOR=Red][B] n:=12;
 k:=1;
 write('Y[ 1]= ');
 Readln(Y[1]);
 max:=Y[1];
 For i:=2 to n do 
  begin 
   write('Y[',i:2,']= ');
   Readln(Y[i]);
   If max<Y[i] then 
    begin
     max:=Y[i]; 
     k:=i;
    end;
  end;
 Writeln('максимум в массиве Y: ',max);
 Writeln('номер максимума  в массиве Y: ',k);[/B][/COLOR]
 Readkey ;
End.
Ну а теперь изобразим это дело через процедуры, коих опишем две: процедуру ввода массива и процедуру поиска максимума. Для начала придется ввести тип переменной Ar - без этого передать массив в процедуру и вывести из процедуры нельзя. Также будем передавать число элементов массива и его имя (один символ). Заметьте, что в шапке процедуры входные параметры перечисляются обычным образом, а вот перед выходными ставится "var". Посмотрите, если возникнут вопросы - спрашивайте.

Код:
Uses CRT;
Type
 Ar=Array[1..15] of word;

Var
 x,Y:Ar;
 k,n:word;
 max:word;

Procedure Inp(Nz:word; Name:Char; var z:Ar);
Var i:word;
begin
 for i:=1 to Nz do
  begin
   write(Name,'[',i:2,']= ');
   readln(z[i]);
  end;
end;

Procedure Maxim(z:Ar; Nz:word; var Mxm:word; var Km:word);
Var i:word;
begin
 Mxm:=z[1];
 Km:=1;
 for i:=2 to Nz do
  If Mxm<z[i] then
   begin
    Mxm:=z[i];
    Km:=i;
   end;
end;

Begin
 CLRSCR;
 n:=15;
 Inp(n, 'x', x);
 Maxim(x,n,max,k);
 Writeln('Maximum in x array: ',max);
 Writeln('Number of maximum in x array: ',k);
 Writeln;
 n:=12;
 Inp(n, 'Y', Y);
 Maxim(Y,n,max,k);
 Writeln('Maximum in Y array: ',max);
 Writeln('Number of maximum in Y array: ',k);
 Readkey ;
End.
 
Спасибо большое)
 
Назад
Сверху