| 
| 
 | Вопрос # 2 878/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Помогите пожалуйста написать программу.
 
 1. С клавиатуры вводятся последовательно 10 пар целых чисел  x и y. Выведите на экран только те пары, имеющие противоположные знаки.
 
|  |   Вопрос задал: Николай Иванович (статус: Посетитель)Вопрос отправлен: 2 июня 2009, 13:58
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ program p2878;
 
const
  N = 10;
 
type
  TPair = record
    X, Y: Integer;
  end;
 
  TPairArray = array[0..N - 1] of TPair;
 
var
  PA: TPairArray;
  Index: Integer;
 
begin
  WriteLn(#13#10'--- Input a pairs ---');
  for Index:= 0 to N - 1 do
    begin
      Write('  type an X and Y of pair ', (Index + 1): 2,': ');
      ReadLn(PA[Index].X, PA[Index].Y);
    end;
 
  WriteLn('--- Pairs with different signs ---');
  for Index:= 0 to N - 1 do
    if PA[Index].X * PA[Index].Y < 0
      then WriteLn('  Pair ', (Index + 1): 2,': ', PA[Index].X, ', ', PA[Index].Y);
 
  Write(#13#10'    Press "Enter" to exit...');
  ReadLn;
end.
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 2 июня 2009, 14:31
 
 |  
 Мини-форум вопросаВсего сообщений: 23; последнее сообщение — 2 июня 2009, 15:56; участников в обсуждении: 4. Страницы: [1] [2] [Следующая »]  
|   | Пупкин В В (статус: 2-ой класс), 2 июня 2009, 14:11 [#1]:а в чем сложность, на чем остановились? или вы просто хотите чтоб за вас написали?
 алгоритм прост:
 вводите х и у
 если х меньше нуля при этом у больше или наоборот то запоминаем эти числа в массив
 выводим массив
 |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 14:33 [#2]:это не через массив надо сделать... 
 Задание к работе:
 1. Составить математическую модель решения задач Задания 1. написать программу на языке Паскаль (с использованием операторов For, Repeat и While).
 |  
|   | Пупкин В В (статус: 2-ой класс), 2 июня 2009, 14:42 [#3]:PA[Index].X * PA[Index].Y < 0 точно более правильно =) |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 14:51 [#4]:1. В задании не сказано, что надо делать НЕ через массив. 2. Не понятно про операторы цикла. В моём примере присутствует оператор for. А надо, чтобы присутствовали все 3 оператора цикла (For, Repeat и While)?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 14:54 [#5]:в данном случае надо сделать через for, без массивов... |  
|   | Вадим К (статус: Академик), 2 июня 2009, 15:05 [#7]:м, что то в таком стиле 
 begin
  for i := 1 to 10 do begin
    writeln('pervoe='); readln(x1);
    writeln('vtoroe='); readln(x2);
    if (x1*x2 < 0) then
      writeln (x1, ' ', x2);
  end;
end.или вместо массивов надо связанные списки использовать?Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 15:12 [#8]:Вот вариант без массива с одним циклом: 
 program p2878new;
 
const
  N = 10;
 
var
  Index, X, Y: Integer;
 
begin
  WriteLn(#13#10'--- Input a pairs ---');
  for Index:= 0 to N - 1 do
    begin
      Write('  type an X and Y of pair ', (Index + 1): 2,': ');
      ReadLn(X, Y);
 
      if X * Y < 0
        then WriteLn('    >> This pair has a different signs: ', X, ', ', Y);
    end;
 
  Write(#13#10'    Press "Enter" to exit...');
  ReadLn;
end.
 Цитата: и в pascal 7.0  А что, код в ответе не компилится в Pascal 7.0? Не может такого быть!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 15:13 [#9]: Цитата: или вместо массивов надо связанные списки использовать?  
 Вово, я тоже подумал, уж не в дин. памяти ли хранить введённые данные?!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:14 [#10]:Я делал такой же код программы, тут просто вводятся 10 пар и ничего не выводится =\ |  
|   | Вадим К (статус: Академик), 2 июня 2009, 15:15 [#11]:ну что бы что то вывелось, надо ещё правильно ввести. А если просто одни положительные числа вводить, то конечно ничего не выведет. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:21 [#12]:ну эт понятно... я и ввожу пару -1 и 1 и не выводит.... |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:21 [#13]:ну эт понятно... я и ввожу пару -1 и 1 и не выводит.... |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:22 [#14]:а ну хотя выводит ... ток не так надо я так и сам сделал, надо чтоб сначало ввести 10 пар, а потом вывелись они, а не так чтоб вводишь и они сразу показывались ... |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 15:22 [#15]:Ты как их вводишь? Надо 1 [пробел] -1 [enter] Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 15:25 [#16]: Цитата: надо чтоб сначало ввести 10 пар, а потом вывелись они, а не так чтоб вводишь и они сразу показывались ...  
 Так их где-то надо хранить! Если нельзя массивы использовать, то тут есть ещё мегаварианты:
 1. Дин. память.
 2. Куча переменных X1, X2,..., X10, Y1, Y2,...Y10 (тогда куда пихать цикл?).
 3. Писать введённое в файл, затем читать оттуда и сравнивать.
 
 Вращайте барабан! (© Якубович)
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:32 [#17]:хм..ясно, а точно вариантов больше нет чтобы при вводе 10 пар они выводились потом, только при использовании For, Repeat и While |  
|   | Вадим К (статус: Академик), 2 июня 2009, 15:36 [#18]:можно ещё рекурсивный ввод замутить... и массивов не будет... и вводить можно будет не 10 элементов, а сколько стека хватит. есть правда один недостаток - выводиться будут в обратном направлении. правда думаю не всякий преподаватель сходу юмор кода поймет. общий вид кода
 
 procedure vvod(n:integer);
var x,y:integer;
begin
  if n <= 0 then exit;
  Write('  vvedi X i Y ');
  ReadLn(X, Y);
  vvod(n-1);
  if (X*Y) < 0 then 
    writeln(x, ' ',y, '  coool');
end;
 
begin
  vvod(10);
end.Но это для эстетов. Преподавателю показывать без понимания кода нельзя!Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Николай Иванович (статус: Посетитель), 2 июня 2009, 15:40 [#19]:Да код то я понимаю, но эт тоже не вариант с процедурой... |  
|   | min@y™ (статус: Доктор наук), 2 июня 2009, 15:44 [#20]: Цитата: Да код то я понимаю, но эт тоже не вариант с процедурой...  Я смотрю, тебе не угодишь!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Страницы: [1] [2] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |