Yoko

All sides of Injection
It is currently 2024-03-28 14:01:21

All times are UTC+02:00




Post new topic  Reply to topic  [ 30 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2007-10-19 20:50:12 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Code:
Для одномерных массивов F и W, которые состоят из 10 элементов целого типа каждый, подсчитать количество элементов, больших чем заданное число X и меньших числа Y ( X,Y - любые целые числа).

Вобщем вот такая задачка.
Вроде всё просто, но я не могу никак её реализовать.
Вот всё что я мог зделать, дальше туго вобще :oops:
Code:
Program mission 1;
const n=10; x=5; y=10;
var F,W:Array [1..n] Of Real;
k:integer;
  Begin

    ...
 
  End.

Помогите плиз, хотябы направьте в нужную сторону =)


Top
   
 Post subject:
PostPosted: 2007-10-19 20:51:24 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
На С++ без проблем, паскаль незнаю =)


Top
   
 Post subject:
PostPosted: 2007-10-19 21:21:00 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Жаль :(


Top
   
 Post subject:
PostPosted: 2007-10-19 22:25:13 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Вот кропаль додумал, но всё равно не знаю как вывести количество элементов больших Х и меньших Y :?
Code:
Program zadacha;
const
n=10;
x=5;
y=10;
var
F,W:Array [1..n] of real;
b:integer;
k:integer;
Begin
  if x=5 then
    begin
      for b:=6 to 10 do

        ...

    end;
  if y=10 then
    begin
      for k:=10 DownTo 6 do

         ...

    end;
  Writeln('Чисел больших X -' + str(...));
  Writeln('Чисел меньших Y -' + str(...));
End.


Top
   
 Post subject:
PostPosted: 2007-10-20 11:15:50 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Зачастую у всех языков программирования очень много общего- логические операции, типы, организации циклов и объявления переменных,- ну и конечно алгоритм выполнения программы.

Вот как оно выглядит на С++ :

Code:
#include <iostream.h>

void main()
 {
   int A[10]={1,2,3,4,5,6,7,8,9,10};
   int B[10]={4,5,6,7,8,9,10,11,12,133};
   int X,Y,k;
   k=0;
   cout<<"Введите значение числа X: ";
   cin>>X;
   cout<<"\nВведите значение числа Y: ";
   cin>>Y;
   if(X>Y)
     cout<<"\nОшибка ввода. Число X больше числа Y.";
   else
    if(X==Y)
     cout<<"\nОшибка ввода. Число X равно числу Y.";
    else
     {
     for(int i=0;i<10;i++) //Крутим цикл по индексам массивов
      if(A[i]>X && A[i]<Y || B[i]>X && B[i]<Y) k++; // Если i'й элемент первого массива больше Х и меньше У или i'й элемент второго массива больше Х и меньше У, то кол-во найденных элементов увеличиваем на еденицу
     cout<<"\n\nНайдено "<<k<<" элементов которые больше "<<X<<" и меньше "<<Y<<".\n";
    }
 }


Top
   
 Post subject:
PostPosted: 2007-10-21 01:28:02 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Спасиба, завтра буду пробовать перевести в паскаль. =)

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-21 16:28:35 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
форумов по паскалю в инете море, что толку спрашивать на форуме инжекта? Я знаю паскаль, но голова счас гудит, неохота разбираться...

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2007-10-21 16:43:43 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Destruction wrote:
А я такое на инжекте могу.. :)
Code:
sub main()
var X = ; сюда вбить число
var Y = ; и сюда число :)
DIM F[10]
DIM W[10]
; элементы массива 0-9 вбивать не стал.. суть и без них ясна :)
var i, counter = 0
for i = 0 to 9
   if F[i] > X && F[i] < Y then
      counter = counter + 1
   endif
   if W[i] > X && W[i] < Y then
      counter = counter + 1
   endif
next
uo.print( str( counter ) )
endsub


PS: А можно всех шокировать и "решить" "задачу" без циклов :)


Инкремент + условные,-альтернативный вариант цикла.
Можно и на АСМе написать через одни метки :) Но в этом пока не силён


Top
   
 Post subject:
PostPosted: 2007-10-22 22:11:22 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Code:
Program zadacha;
var
F,W:Array [1..10] of real;
k:integer;
x:real;
y:real;
Sf:real;
Sw:real;
Begin
  Writeln('Введите X: ');
  Readln(x);
  Writeln('Введите Y: ');
  Readln(y);
  If x>y then
     Writeln('Ошибка.Число X больше Y!!!')
  else
     if x=y then
        Writeln('Ошибка.Число X равно Y!!!')
     else
        Sf:=0;
        Sw:=0;
        for k:=1 to 10 do
           begin;
             if (F[k]>=x) and (F[k]<=y) then
                Sf:=k+1;
                Writeln('Элементов больших X - ', Sf);
             if (W[k]>=x) and (W[k]<=y) then
                Sw:=k+1;
                Writeln('Элементов меньших Y - ', Sw);
           end;
End.

Не понимаю, вроде всё правельно, но оно не считает, т.е выдаёт 10 раз:
Элементов больших X - 0
Элементов меньших Y - 0

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-22 23:59:58 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
А в массивах-то у тебя что? Ты их создал, а заполнять начальными значениями кто будет? Дядя Вася? Потому и сравнение не работает, сравнивать-то введенные числа не с чем.

Есть, похоже, еще одна ошибка в твоих рассуждениях:

Code:
if (F[k]>=x) and (F[k]<=y) then 
                Sf:=k+1;
                Writeln('Элементов больших X - ', Sf);


Вот это, что? Ты думаешь, это один условный оператор? Ни фига. Условный оператор заканчивается точкой с запятой. А команда Writeln выполняется всегда. Если ты хочешь, чтобы обе команды (и приращение, и вывод) выполнялись только при выполнении условия - заключи их в блок begin ... end;

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2007-10-23 01:53:14 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Edred wrote:
А в массивах-то у тебя что? Ты их создал, а заполнять начальными значениями кто будет? Дядя Вася? Потому и сравнение не работает, сравнивать-то введенные числа не с чем.

Есть, похоже, еще одна ошибка в твоих рассуждениях:

Code:
if (F[k]>=x) and (F[k]<=y) then 
                Sf:=k+1;
                Writeln('Элементов больших X - ', Sf);


Вот это, что? Ты думаешь, это один условный оператор? Ни фига. Условный оператор заканчивается точкой с запятой. А команда Writeln выполняется всегда. Если ты хочешь, чтобы обе команды (и приращение, и вывод) выполнялись только при выполнении условия - заключи их в блок begin ... end;

Насчёт последнего ты имел ввиду это?
Code:
             if (F[k]>=x) and (F[k]<=y) then
               begin
                 Sf:=k+1;
                 Writeln('Элементов больших X - ', Sf);
               end;
             if (W[k]>=x) and (W[k]<=y) then
               begin
                 Sw:=k+1;
                 Writeln('Элементов меньших Y - ', Sw);
               end;

А с массивами я чёта не понял как их заполнять.
Нам толком про массивы ничё не рассказали и я программирование только начал изучать.
В учебниках смотрел, но ничё не высмотрел.
Объясни пожалуста если не трудно по-конкретней что мне нужно зделать, как заполнить массив, или лучше зделай сам, а мне на наглядном примере будет легче понять и вас не буду беспокоить =)
Please :roll:

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-23 04:42:04 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Не ужели нет явной инициализации как в спп

Code:
int A[]={1,2,3,4,5,6,7}; ([]-открытая граница т.к. сразу же задаём кол-во элементов)


или ввода с клавиатуры?

Code:
int A[10];
for(int i=0;i<10;i++)
 {
  cin>>A;
  cout<<i<<". A="<<A<<endl;
 }


Top
   
 Post subject:
PostPosted: 2007-10-23 14:45:58 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Лучше пусть Edred, если ему не трудно, покажет на паскале, ато так не понятно. Потому что на паскале так, если я не ошибаюсь, нельзя
Code:
int A[]={1,2,3,4,5,6,7}; ([]-открытая граница т.к. сразу же задаём кол-во элементов)

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-23 15:19:52 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
-=JoKeR=- wrote:
Лучше пусть Edred, если ему не трудно, покажет на паскале, ато так не понятно. Потому что на паскале так, если я не ошибаюсь, нельзя
Code:
int A[]={1,2,3,4,5,6,7}; ([]-открытая граница т.к. сразу же задаём кол-во элементов)


В любом учебнике и электронном рерурсе 3, максимум 4 глава- массивы. Другое дело что тебе лень читать и ты ждёшь ответа здесь.


Top
   
 Post subject:
PostPosted: 2007-10-23 20:54:30 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Нет читать мне не лень. Я читал. Толку мне ждать, если я за это время могу сам это изучить. Но дело в том что я практически сам с ноля изучаю и мне некоторые моменты просто непонятны без наглядного примера. Поэтому и прошу вас о помощи.

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-23 22:55:54 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Попробуй так:

Code:
Begin 
   F[1..10] := (0,1,2,3,4,5,6,7,8,9);
   W[1..10] := (0,1,2,3,4,5,6,7,8,9);


Да, и измени:

Code:
F,W:Array [1..10] of integer;


Не понял я зачем тебе вещественные числа...

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2007-10-25 00:03:42 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Если зделать так
Code:
F[1..10] := (0,1,2,3,4,5,6,7,8,9);
W[1..10] := (0,1,2,3,4,5,6,7,8,9);

то при запуске программа ругаеться что после
Code:
F[1

нехватает либо ] либо .)

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-25 01:17:58 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
кидай целиком измененную программу. Что-то ты не так сделал.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2007-10-25 18:07:37 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Code:
Program zadacha;
var
F,W:Array [1..10] of integer;
k:integer;
x:integer;
y:integer;
Sf:integer;
Sw:integer;
Begin
  F[1..10]:=(0,1,2,3,4,5,6,7,8,9);
  W[1..10]:=(0,1,2,3,4,5,6,7,8,9);
  Writeln('Write X: ');
  Readln(x);
  Writeln('Write Y: ');
  Readln(y);
  If x>y then
     Writeln('Error. Number X > Y !!!')
  else
     if x=y then
        Writeln('Error. Number X = Y !!!')
     else
        Sf:=0;
        Sw:=0;
        for k:=1 to 10 do
           begin;
             if (F[k]>=x) and (F[k]<=y) then
               begin
                 Sf:=k+1;
                 Writeln('Count elements > X = ', Sf);
               end;
             if (W[k]>=x) and (W[k]<=y) then
               begin
                 Sw:=k+1;
                 Writeln('Count elements < Y = ', Sw);
               end;
           end;
End.

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-25 18:18:00 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Code:
Program zadacha;
var
F,W:Array [1..10] of integer;
k:integer;
x:integer;
y:integer;
Sf:integer;
Sw:integer;
Begin
  F[1..10]:=(0,1,2,3,4,5,6,7,8,9);
  W[1..10]:=(0,1,2,3,4,5,6,7,8,9);


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

Code:
  If ... then

  else
     ...


Я тебе что ранее про begin...end написал? Перечитай и подумай, где бы тебе еще в программе их расставить (в двух местах). Если, конечно, хочешь чтобы программа работала правильно.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 30 posts ]  Go to page 1 2 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited