Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 26.03.2013, 12:13   #1 (permalink)
anka950
Новичок
 
Регистрация: 21.03.2013
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль

Найти наибольшие элементы и их порядковые номера массивов x(15) и y(12)
Через процедуру или функцию
Помогите пожалуйста
anka950 вне форума   Ответить с цитированием

Старый 26.03.2013, 12:13
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую обратить внимание на аналогичные темы

Паскаль
Паскаль
Паскаль

Старый 26.03.2013, 12:37   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от anka950 Посмотреть сообщение
Найти наибольшие элементы и их порядковые номера массивов x(15) и y(12)
Через процедуру или функцию
Помогите пожалуйста
Аня, постыдились бы с подобной ерундой вылезать! Мой Вам совет - беритесь за учебу, пока не поздно. Вот как раз прекрасная возможность получить навыки работы с основами Паскаля.
А если Вы планируете всё обучение за счет форумов проехать, ничего не делая и ничего не осваивая - не выйдет, уж поверьте.
Успехов!
P.S. С удовольствием поможем разобраться с проблемами и исправить ошибки. Но это при условии, что хоть что-то будет Вами сделано. Пока же Ваше "помогите" означает "напишите, а я тупо бездумно скатаю и сдам".
Vladimir_S вне форума   Ответить с цитированием
Старый 26.03.2013, 12:39   #3 (permalink)
anka950
Новичок
 
Регистрация: 21.03.2013
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Что мне делать если я процедуры не понимаю?!
anka950 вне форума   Ответить с цитированием
Старый 26.03.2013, 12:45   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от anka950 Посмотреть сообщение
Что мне делать если я процедуры не понимаю?!
Хорошо, напишите без процедур. Потом поправим.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.03.2013, 17:36   #5 (permalink)
anka950
Новичок
 
Регистрация: 21.03.2013
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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[i];
For i:=2 to n do begin
Read(x[i]);
If max<x[i] then begin
max:=x[i]; k:=i;end;end;
Writeln('максимум: ',max);
Writeln ('номер максимума: ',k);
Readkey ;
End.
anka950 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 27.03.2013, 21:18   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так, почти хорошо. Правда, сразу замечание: команды ClrScr и ReadKey в состав языка не входят, а реализуются через подключаемый модуль CRT, а потому, если уж Вы их используете, необходимо в самом начале поставить "Uses CRT;". Далее, внимательнее относитесь к написанию идентификаторов: в разделе описания Вы задаете переменную "mas", а в теле программы работаете с переменной "max". Уж выберите что-то одно. Поймите, текст программы - это не письмо возлюбленному, который сквозь пальцы посмотрит на описки, неряшливости и пр., здесь требуется абсолютная точность и выверенность каждого значка, иначе компьютер начнет плеваться, ибо "общих соображений" он напрочь не понимает. Продолжаем. Исходное значение максимума Вы задаете, как x[i], а надо - x[1]. Массив Y вообще не введен и не обработан. Потом - "слепой" ввод крайне неудобен, лучше с подсказками. Ну вроде всё.

Код:
Uses CRT;
Var 
 x:array[1..15] of word;
 k,i,n:word; 
 max:word;
 Y:array[1..12] of word;
Begin
 CLRSCR;
 n:=15;
 k:=1;
 write('x[ 1]= ');
 Readln(x[1]);
 max:=x[1];
 For i:=2 to n do 
  begin 
   write('x[',i:2,']= ');
   Readln(x[i]);
   If max<x[i] then 
    begin
     max:=x[i]; 
     k:=i;
    end;
  end;
 Writeln('максимум в массиве x: ',max);
 Writeln('номер максимума  в массиве x: ',k);
 Writeln;
 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);
 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.03.2013, 10:33   #7 (permalink)
anka950
Новичок
 
Регистрация: 21.03.2013
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое)
anka950 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.