Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2008, 16:38   #1
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию Помогите решить задачу(Pascal)

Умножить все элементы массива на чило Х и определить, какое количество компонентов полученного массива находится вне интервала [0;100]

Код:
Program Lb4;
Uses crt;
Const X=10;
Var K:array[1..10] of real;
    S:real;
    I,M:integer;
Begin
Clrscr;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);
For I:=1 to M do
 Begin
  Write('K[',I,']=');
  Readln(K[I]);
 End;
Writeln;
Writeln('Kontrolnyi Byvod matricy: ');
For I:=1 to m do begin
Write (K[I]:4:2,'':3);
Writeln;
End;
Writeln;
Writeln('Umnoschim massiv na X: ');
For I:=1 to M do
 Begin
 K[I]:=K[I]*X;
 Write (K[I]:4:2,'':3);
 Writeln;
 Readln(K[I]);
 End;
End.
Помогите, пожалуйста, продолжить и в чём здесь моя ошибка?
Дима82 вне форума Ответить с цитированием
Старый 22.05.2008, 16:54   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

А ты можешь обьяснить назначение каждой строчки? Зачем она была написанна в этой программы, какова её функция?

Например: Почему именно эти типы и зачем S....
Var K:array[1..10] of real;
S:real;
I,M:integer;
..........

Почемуб не написать Writeln сразу
For I:=1 to m do begin
Write (K[i]:4:2,'':3);
Writeln;
End;

.......... Зачем просить пользователя перезаписать элемент массива?
For I:=1 to M do
Begin
K[i]:=K[i]*X;
Write (K[i]:4:2,'':3);
Writeln;
Readln(K[i]);
End;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 22.05.2008, 17:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так?:
Код:
Const X=10;
Var K:array[1..10] of real;
    S:real;
    I,M:integer;
Begin
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);
For I:=1 to M do
 Begin
  Write('K[',I,']=');
  Readln(K[i]);
  k[i]:=k[i]*x;
  if (k[i]<0)or(k[i]>100) then; {неа за пределами}
 End;
 readln;
End.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2008, 17:23   #4
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Цитата:
А ты можешь обьяснить назначение каждой строчки? Зачем она была написанна в этой программы, какова её функция?

Например: Почему именно эти типы и зачем S....
Var K:array[1..10] of real;
S:real;
I,M:integer;
..........

Почемуб не написать Writeln сразу
For I:=1 to m do begin
Write (K[i]:4:2,'':3);
Writeln;
End;

.......... Зачем просить пользователя перезаписать элемент массива?
For I:=1 to M do
Begin
K[i]:=K[i]*X;
Write (K[i]:4:2,'':3);
Writeln;
Readln(K[i]);
End;
Я взял в качестве примера образец и начал оттуда выполнять
Дима82 вне форума Ответить с цитированием
Старый 22.05.2008, 17:37   #5
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от Дима82 Посмотреть сообщение
Я взял в качестве примера образец и начал оттуда выполнять
Это глупо. Надо разбирать чужие примеры и разбираться "почему имено так".
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 22.05.2008, 17:40   #6
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Ну, так чё поможите... Желательно с объяснениями...
Дима82 вне форума Ответить с цитированием
Старый 22.05.2008, 18:16   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Ну вот то, что комрад Stilet написал, то и рассмотрим....

Код:
{т.к. некоторые значения переменых
не меняются в процесе работы программы
то их можно и нужно обьявить как
константы}
Const X = 10;


Var
    {Это не критично, но в этой программе яб
    использовал тип Integer.
    Но это на усмотрение программиста.}
    K : array[1..10] of real;
    S : real;
    I, M : integer;

Begin

{Процедурой Write мы выводим на экран сообщение для
пользователя. В отличии от Writeln, Write не делает
переход на новую строку}
Write('BBedute 4uclo elementov macciva <=10: ');

{Идёт ожидание введёного значения от клавиатуры.
При нажатии Ентер переменной М будет присвоено
введёное значение и произойдёт переход на новую строку
аналогично как и в процедуре Write/Writeln}
Readln(M);

{Для обработки массива обычно используют циклы.
В данном примере использован цикл For.
Переменая I с каждым проходом цикла увеличивается
на единицу. Цикл завершится как только переменая I
будет равна переменой M. Если в цикле нужно выполнить
одно какоелибо действие то блок Begin End можно не
ставить. В противном случае (как в данный момент)
блок Begin End необходим, потому что выполняются
множество операций.}
For I:=1 to M do  
  Begin
    Write('K[',I,']=');

    {Обращение к одномерному массиву осуществляется по
    индексу. Где в квадратных скобках указан номер
    индекса.}
    Readln(K[i]);

    {Идёт обращение к элементу массива.
    Этому индексу присваивается тоже значение
    но умноженое на число х.}
    k[i] := k[i] * x;

    {Блок If Then Else.
    Блок ветвление. Он позволяет принимать некоторые решения
    при сравнение чисел или других значений.
    If <условие> Then <Если Да то...> Else <Если нет то...>
    Если надо обработать сразу несколько условий то их заключают
    в скобки как в данном примере
    If (<Условие 1>) Or (<Условие 2>) Or (<Условие 3>) Then .......
    Or - Или, And - и.
    Аналогично как и с циклом выставляется блок Begin End}
    if (k[i]<0)or(k[i]>100) then; {неа за пределами}

  End;

{Не даёт программе завершится. Ждёт нажатия клавиши Ентер}
readln;

End.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 22.05.2008, 18:51   #8
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Код:
Program Lb4;
Uses crt;
Const X=10;
Var K:array[1..10] of real;
    S:real;
    I,M:integer;
Begin
Clrscr;
Write('BBedute 4uclo elementov macciva <=10: ');
Readln(M);
For I:=1 to M do
 Begin
  Write('K[',I,']=');
  Readln(K[I]);
 End;
Writeln;
Writeln('Kontrolnyi Byvod matricy: ');
For I:=1 to M do begin
Write (K[I]:4:2,'':3);
Writeln;
End;
Writeln('Umnoschim massiv na X: ');
For I:=1 to M do
 Begin
 K[I]:=K[I]*X;
 If (K[I]<0) or (K[I]>100) then;
 Writeln (K[I]:4:2,'':3);
 Readln(K[I]);
Writeln('4isla ne vhodiawie v interval: ');
 For I:=1 to M do
 If (K[I]>0) or (K[I]<100) then
 Write (K[I]:4:2,'':3);
 End;
Writeln('Koli4estvo komponentov: ');
 If (K[I]>0) or (K[I]<100) then
 S:=I;  
 Write(S:4:2,'':3);
 Readln;
End.
Какая-то ерунда получается, подправьте, пожалуйста, моё решение...
Дима82 вне форума Ответить с цитированием
Старый 22.05.2008, 18:53   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от Дима82 Посмотреть сообщение

Какая-то ерунда получается, подправьте, пожалуйста, моё решение...
А что конкретно не нравится в этой "ерунде"?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 22.05.2008, 19:06   #10
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

На экран выходит не тот что нужно:
1) Только первое число умножается на Х и надо ввести число, чтобы продолжить, потом это число заменяется вместо первого компонента.
2)"Числа не входящие в интервал" входят, те числа которые не должны входить.
Дима82 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на Turbo Pascal tree Паскаль, Turbo Pascal, PascalABC.NET 6 16.05.2010 23:27
Pascal.Помогите решить задачу на шифрование. newuser Паскаль, Turbo Pascal, PascalABC.NET 7 02.06.2008 15:46
Задача в pascal?! помогите пожалуйста решить задачу. Absent Помощь студентам 6 09.04.2008 23:41
Помогите решить задачу на тему - Файлы. Pascal. Impulsive Паскаль, Turbo Pascal, PascalABC.NET 4 23.02.2008 11:55
Помогите решить задачу на pascal Ilya M. Помощь студентам 4 28.10.2007 20:51