Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Пожалуйста, помогите с задачей в Паскале. (http://www.tehnari.ru/f41/t32761/)

scald 04.02.2010 01:34

Пожалуйста, помогите с задачей в Паскале.
 
Здраствуйте! Помогите , пожалуйста решить простую задачу для сдачи в институте. В программировании не особо, а оценк путная нужна. Помогите, пожалуйста.

Вводится длина одномерного массива (вектора) и значения его элементов.
Вводится дополнительный массив разрешенных значений. Определить и вывести на экран, сколько элементов исходного массива имеют разрешенные значения.

и

Ввести размер прямоугольной матрицы и значения ее элементов.

Построить вектор В, где В(i) -

максимальное значение в i-ом столбце.


Заранее благодарен.

Vladimir_S 04.02.2010 09:42

Так. Во-первых, не дублируйте сообщения - от этого быстрее ответа не получите, а форум засоряете, а во-вторых, давайте-ка самостоятельно: задачки тупые, рутинные, ясельного уровня. В крайнем случае, выкладывайте свои наработки - поправим, подскажем. А вылезать с ТАКИМ - мол, делайте за меня, мне лень разбираться в азах программирования - не дело. Если с этого начинаете, то что дальше - так и будете на форумах выезжать?

MrSTEP 04.02.2010 11:02

Владимир, а ты понял, что это за "дополнительный массив разрешенных значений"? Как я понял, это просто некоторый набор чисел, с которыми надо сравнивать элементы исходного массива, и в случае совпадения, подсчитывать и выводить на экран?

Vladimir_S 04.02.2010 11:15

Цитата:

Сообщение от MrSTEP (Сообщение 291060)
Владимир, а ты понял, что это за "дополнительный массив разрешенных значений"? Как я понял, это просто некоторый набор чисел, с которыми надо сравнивать элементы исходного массива, и в случае совпадения, подсчитывать и выводить на экран?

Ага, я тоже именно так и понял.
P.S. Вот оттяфкал человека, а у самого кошки скребут. Просто я уже не в силах видеть словосочетание "минимальный (максимальный) элемент одномерного массива". Достали!

MrSTEP 04.02.2010 12:12

Встречаются люди, которые не могут даже описать или ввести массив, не говоря уж за поиск минимального.. И это даже не электрики с института, которым то программирование и даром не нужно, а люди из группы программистов. Просто человек один раз мимо ушей пропустил, второй.. И все, как что-то одно не понял, так и дальше все пошло комом. А материал новый изучается, и ком все растет и растет...
Автор, начните с разработки алгоритма.. Что и как вводить, как обрабатывать, что выводить. Не стесняйтесь, пускай это будет даже неправильный вариант, мы подскажем, что надо исправить

scald 04.02.2010 12:39

я на врача учусь да еще и работаю на скорой, в своей ,необходимой для работы области разбираюсь хорошо, а в програмировании откровенно говоря никак...никогда не думал, что мне это будет нужно и вдруг...ни примерного решения задач , ни алгоритма действий увы не знаю, посему и обращаюсь за решением к Вам, специалистам. Надеюсь поможете.

Vladimir_S 04.02.2010 12:46

Ох, ну что с Вами сделаешь - докторов нужно баловать. Сегодня выложу.

MrSTEP 04.02.2010 13:05

Ну скоро даже сантехники и сварщики будут паскаль изучать..

Vladimir_S 04.02.2010 13:07

Цитата:

Сообщение от scald (Сообщение 291008)
Вводится длина одномерного массива (вектора) и значения его элементов.
Вводится дополнительный массив разрешенных значений. Определить и вывести на экран, сколько элементов исходного массива имеют разрешенные значения.

Код:

VAR
 A,P:ARRAY[1..20] of WORD;
 Na,Np,Nap,i,j:INTEGER;
BEGIN
 Write('Enter the number of elements in the main array: ');
 ReadLn(Na);
 WriteLn('Enter the integer positive values of main array:');
 For i:=1 to Na do
  begin
  Write('A[',i,']= ');
  ReadLn(A[i]);
  end;
 Write('Enter the number of permitted values: ');
 ReadLn(Np);
 WriteLn('Enter the permitted values:');
 For i:=1 to Np do
  begin
  Write('P[',i,']= ');
  ReadLn(P[i]);
  end;
 Nap:=0;
 For i:=1 to Na do
  For j:=1 to Np do
  If A[i]=P[j] then INC(Nap);
 WriteLn('The array contains ',Nap,' permitted values');
 ReadLn;
END.


Vladimir_S 04.02.2010 13:09

Вторую - примерно через час (после обеда).

scald 04.02.2010 13:30

За первую спасибо огромное!

Vladimir_S 04.02.2010 14:16

Цитата:

Сообщение от scald (Сообщение 291008)
Ввести размер прямоугольной матрицы и значения ее элементов.
Построить вектор В, где В(i) - максимальное значение в i-ом столбце

Код:

VAR
 A:ARRAY[1..10,1..10] of WORD;
 M:ARRAY[1..10] of WORD;
 Nl,Nc,i,j:INTEGER;
BEGIN
 Write('Enter the number of lines (<=10): ');
 ReadLn(Nl);
 Write('Enter the number of columns(<=10): ');
 ReadLn(Nc);
 WriteLn('Enter the integer positive values of matrix elements:');
 For i:=1 to Nl do
  For j:=1 to Nc do
  begin
    Write('A[',i,',',j,']= ');
    ReadLn(A[i,j]);
  end;
 WriteLn;
 For i:=1 to Nl do
  begin
  For j:=1 to Nc do
    Write(A[i,j]:8);
  WriteLn;
  end;
 WriteLn;
 For j:=1 to Nc do
  begin
  M[j]:=A[1,j];
  For i:=2 to Nl do
    If A[i,j]>M[j] then M[j]:=A[i,j];
  end;
 WriteLn('The array of maximum column values:');
 For j:=1 to Nc do
  WriteLn('M[',j,']= ',M[j]);
 ReadLn;
END.


scald 04.02.2010 17:56

и за вторую спасибо большое. Знать бы конечно алгоритм ещё...ну да ладно. Спасибо Vladimir_S ! Не забуду Вашу отзывчивость и понимание ситуации. Всего Вам доброго!!!

Linka 18.02.2010 19:07

Владимир, а почему во второй программе, вы не сделали так:

Код:

A:ARRAY[1..Nl,1..Nc] of WORD;
с последующим вводом Nl и Nc с клавиатуры ? А сначала поставили ограничения в 10 элементов ?

Vladimir_S 18.02.2010 19:46

Цитата:

Сообщение от Linka (Сообщение 296848)
Владимир, а почему во второй программе, вы не сделали так:

Код:

A:ARRAY[1..Nl,1..Nc] of WORD;
с последующим вводом Nl и Nc с клавиатуры ? А сначала поставили ограничения в 10 элементов ?

А потому что Паскаль такого не допускает. В свое время (много-много лет назад) это для меня было сильным разочарованием - я перешел на Паскаль с языка, в котором подобные конструкции были в порядке вещей. Потом привык.
Что же можно?
1. Определить диапазон массива явно, как сделано в программе. Если длина массива наперед не известна, то нужно взять верхнюю границу "с запасом", благо современные компьютеры это позволяют. Почему 10? А с потолка. Ну то есть не совсем - хотелось, чтобы матрица помещалась на экране в DOS-моде.
2. Задать числа (Nl, Nc) в виде КОНСТАНТ. И только констант. Тогда появится несколько большая свобода, но всё равно, чтобы изменить значения этих чисел, придется лазать в текст программы, а потом перетранслировать.
Вот так. А больше - никак. Ну если, конечно, не лезть в динамические переменные, указатели и т.п. Но это - совсем другая кухня.

Linka 19.02.2010 01:52

Ясно ) Спасибо


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.