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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 15:11   #1
изо
Пользователь
 
Регистрация: 14.03.2011
Сообщений: 24
По умолчанию Корректировка программы

Прошу Вас откорректируйте как надо, пожалуйста, данную программу в уже представленном тексте. Вот что у меня лично получилось:
Код:
USES Crt;
Var
a:array[1..5,1..10] of integer;
i,j: byte;
x,y:integer;
begin
x := 2*i+1;
y := 2*j+1;
for i := 1 to 5 do
Begin
for j := 1 to 10 do
Begin
a[i,j] := x(i)*y(j);
Write(a[i,j]:4);
End;
Writeln
End;
Readln
End.
Изначально стоит такая задача: Есть два ряда i = 0,1,2,3,4.... и j=0,1,2,3,4...последовательности чисел. Один ряд является элементами горизонтальной верхушки таблицы, а второй левой боковой частью той же таблицы. Сама таблица содержит числа, являющиеся произведением i-того числа и j-числа и находятся на перекрестье i-того столбца и j-той строчки, соответственно.
Основная задача состоит в том, что вместо рядов i и j располагать другие ряды чисел, например x(i) = 2*i+1, y(j)=2*j+1 или x(i) = (2*i+1)/9, y(j)=(2*j+1)/9 и другие ряды чисел полученных с помощью любых других формул. Сама таблица должна содержать произведение уже этих чисел


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.03.2011 в 23:35.
изо вне форума Ответить с цитированием
Старый 18.03.2011, 18:07   #2
AncientHero
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 18
По умолчанию

Зачем тут Crt ?

Код:
var
a:array[1..5,1..10] of integer;
i,j: byte;
x,y:integer;
begin
for i := 1 to 5 do
Begin
for j := 1 to 10 do
Begin
x := 2*i+1;
y := 2*j+1;
a[i,j] := x*y;
Write(a[i,j]:4);
End;
Writeln
End;
Readln
End.
Если мое сообщение вам чем-то помогло, нажмите на весы слева.
AncientHero вне форума Ответить с цитированием
Старый 19.03.2011, 10:31   #3
изо
Пользователь
 
Регистрация: 14.03.2011
Сообщений: 24
По умолчанию

Спасибо за поправку, но у меня просьба:
Таблица выходит в таком виде
9 15 21 27 33 39 45 51 57 63
15 25 35 45 55 65 75 85 95 105
21 35 49 63 77 91 105 119 133 147
27 45 63 81 99 117 135 153 171 189
33 55 77 99 121 143 165 187 209 231
Нельзя ли сделать так чтобы в соответствующей строке (верхней) и в левом крайнем столбце выводились значения i и j, соответственно. Не плохо было бы что бы были разграничительные линии между строками и столбцами, как у обычных таблиц.
изо вне форума Ответить с цитированием
Старый 19.03.2011, 16:14   #4
AncientHero
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 18
По умолчанию

Незнаю как у вас на экране, но на моем все ровно по столбцам и строкам. В крайнем случае для больших чисел напишите
Write(a[i,j]:6);
Если мое сообщение вам чем-то помогло, нажмите на весы слева.
AncientHero вне форума Ответить с цитированием
Старый 20.03.2011, 02:27   #5
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

ну я незнаю как это будет выглядеть у вас на экране...
Код:
const
  n = 5;
  m = 10;

var
  a: array[1..n, 1..m] of integer;
  i, j, k: byte;
  x, y: integer;

begin
  writeln;
  write('   |');
  for j := 1 to m do 
    write(j:6, '|');
  writeln;
  write('---+');
  for k := 1 to m do
    write('------+');
  writeln;
  for i := 1 to n do
  begin
    case i of
      1..99: Write(i:3, '|');
      100..999: Write(i, '|');
    end;
    for j := 1 to m do
    begin
      x := 2 * i + 1;
      y := 2 * j + 1;
      a[i, j] := x * y;
      Write(a[i, j]:6, '|');
    end;
    Writeln;
    write('---+');
    for k := 1 to m do
      write('------+');
    writeln;
  end;
  Readln
end.
но для данной задачи с данными числами (и на моем экране) работает как просили...
Цитата:
чтобы в соответствующей строке (верхней) и в левом крайнем столбце выводились значения i и j, соответственно. Не плохо было бы что бы были разграничительные линии между строками и столбцами, как у обычных таблиц.
P.S. писал на PascalABC

Последний раз редактировалось unbanned; 20.03.2011 в 03:12.
unbanned вне форума Ответить с цитированием
Старый 20.03.2011, 21:35   #6
mashat99
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 10
По умолчанию

Код:
var f1,f2:text;
i,n,sm: integer;
sa:real;
a:array[1..1000]of integer;

begin
n:=0;
assign(f1,'input1.txt');
reset(f1);

while not(eof(f1)) do
 begin
  i:=i+1;
  read(f1,a[i]);
  n:=n+1;
 end;

   for i:=1 to n do
   begin
    sm:=sm+a[i];
    sa:=sm/(n-1);
  end;
close(f1);

  assign(f2,'output1.txt');
  rewrite(f2);
   for i:=1 to (n div 2) do
   begin
    if a[i]<sa then
    writeln(f2,a[i]);
   end;
  close(f2);
readln;
end.
помогите, пожалуйста...нужно занести в файл "output1.txt" все числа, которые меньше среднего арифметического...не могу понять, что сдесь не то...

Последний раз редактировалось mashat99; 20.03.2011 в 21:49.
mashat99 вне форума Ответить с цитированием
Старый 20.03.2011, 21:53   #7
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

mashat99
один вопрос одна тема, увы
unbanned вне форума Ответить с цитированием
Старый 20.03.2011, 22:22   #8
mashat99
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 10
По умолчанию

поняла, ок(((
mashat99 вне форума Ответить с цитированием
Старый 21.03.2011, 09:06   #9
изо
Пользователь
 
Регистрация: 14.03.2011
Сообщений: 24
По умолчанию

Уважаемый unbanned таблицу ты организовал весьма оригинально, она отлично работает в PascalABC.NET. На экран выводится всё прекрасно! Можно сделать так, чтобы выводились в таблице только те x*y, которые при делении на 9 давали остаток равный 6. Причем оставались пустые ячейки таблицы, где указанный остаток не равен 6.

Последний раз редактировалось изо; 21.03.2011 в 10:04.
изо вне форума Ответить с цитированием
Старый 21.03.2011, 13:54   #10
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

да можно...
Код:
const
  n = 5;
  m = 10;
  r = 6;
  c = 3;
  p = ' ';

var
  a: array[1..n, 1..m] of integer;
  i, j, k: byte;

begin
  writeln;
  write(p:c, '|');
  for j := 1 to m do 
    write(j:r, '|');
  writeln;
  write('---+');
  for k := 1 to m do
    write('------+');
  writeln;
  for i := 1 to n do
  begin
    Write(i:c, '|');
    for j := 1 to m do
    begin
      a[i, j] := (2 * i + 1) * (2 * j + 1);
      if a[i, j] mod 9 = 6 then
        Write(a[i, j]:r, '|')
      else Write(p:r, '|')
    end;
    Writeln;
    write('---+');
    for k := 1 to m do
      write('------+');
    writeln;
  end;
  Readln
end.

Последний раз редактировалось unbanned; 21.03.2011 в 14:14.
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обучение распознаванию программы. Корректировка кода. artemavd Общие вопросы Delphi 0 25.06.2010 20:28
Корректировка программы и создание изменяющихся кнопок killen Общие вопросы Delphi 28 27.02.2010 20:24
Корректировка БД nataly_ukr БД в Delphi 5 07.11.2007 15:04