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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2009, 00:30   #1
lg12
Пользователь
 
Регистрация: 20.06.2009
Сообщений: 50
По умолчанию помогите с массивами

значение двумерного массива А 5 на 5 задаются с помощью вложенного цикла в представленном фрагменте программы:
паскаль
Код:
for i:=1 to 5 do
for j:=1 to 5 do
begin
A[i,j]:=i*j
end;
end.
сколько элементов массива будут иметь значения больше десяти.
написать надо на делфи. только начинаю работать с массивами, много чего не понимаю. требуется помощь

Последний раз редактировалось Stilet; 13.07.2009 в 10:53.
lg12 вне форума Ответить с цитированием
Старый 11.07.2009, 00:43   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Код:
for i:=1 to 5 do
  for j:=1 to 5 do
  begin
    mas[i,j]:=i*j;
    if A[i,j] > 10 then inc(k);
    end;
Caption:= IntToStr(k);
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.07.2009, 01:19   #3
lg12
Пользователь
 
Регистрация: 20.06.2009
Сообщений: 50
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
var
A:array[1..5]of integer;
k,i,j:integer;
begin
for i:=1 to 5 do
  for j:=1 to 5 do
  begin
  k:=0;
    A[i,j]:=i*j;
    if A[i,j] > 10 then
    k:=k+1;
    end;

end;

end.
подскажите где ошибка

Последний раз редактировалось Stilet; 13.07.2009 в 10:53.
lg12 вне форума Ответить с цитированием
Старый 11.07.2009, 01:23   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

А что сказал компилятор?
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 11.07.2009, 01:25   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Говориш ты книгу читал
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
A:array[1..5, 1..5]of integer;
k,i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
k:=0;
A[i,j]:=i*j;
if A[i,j] > 10 then
k:=k+1;
end;

end;

end.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.07.2009, 10:48   #6
lg12
Пользователь
 
Регистрация: 20.06.2009
Сообщений: 50
По умолчанию

Цитата:
Сообщение от spamer Посмотреть сообщение
Говориш ты книгу читал
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
A:array[1..5, 1..5]of integer;
k,i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
k:=0;
A[i,j]:=i*j;
if A[i,j] > 10 then
k:=k+1;
end;

end;

end.
всеравно не правильно. если использовать этот код то ответ 1, а правильный ответ 8
lg12 вне форума Ответить с цитированием
Старый 11.07.2009, 11:02   #7
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Цитата:
Сообщение от lg12 Посмотреть сообщение
всеравно не правильно. если использовать этот код то ответ 1, а правильный ответ 8
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
A:array[1..5, 1..5]of integer;
k,i,j:integer;
begin
k:=0;
for i:=1 to 5 do
for j:=1 to 5 do
begin
A[i,j]:=i*j;
memo1.Lines.Add (Inttostr(A[i,j]));
if A[i,j] > 10 then
k:=k+1;
end;
edit1.text:=inttostr(k);
end;

end.
Вот для консольного приложения:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
A:array[1..5, 1..5]of integer;
k,i,j:integer;
begin




k:=0;
for i:=1 to 5 do  begin
for j:=1 to 5 do  begin
begin
A[i,j]:=i*j;
write(A[i,j], ' ');
if A[i,j] > 10 then
k:=k+1;

end;
end;

writeln;
writeln;

 end;
 Write('RESULT => ' , k);
readln;

end.

Последний раз редактировалось Lemo; 11.07.2009 в 11:14.
Lemo вне форума Ответить с цитированием
Старый 11.07.2009, 11:43   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от lg12
Код:
for i:=1 to 5 do
for j:=1 to 5 do
begin
k:=0;
A[i,j]:=i*j;
if A[i,j] > 10 then
k:=k+1;
end;
lg12, я красным отметил ошибочную строчку.
Вы в цикле каждый раз сбрасываете счётчик нужных чисел в НОЛЬ! Это неверно. иницилизацию (начальное присвоение переменной нулю) надо делать ДО ЦИКЛА
k:=0;
for i:=1 to 5 do
for j:=1 to 5 do
begin ....


Добавлено
p.s. lg12, в посте от Lemo всё написано верно!!!
и цель моего поста просто указать на Вашу ошибку...

Последний раз редактировалось Serge_Bliznykov; 11.07.2009 в 11:47.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с массивами BiBu68 Общие вопросы C/C++ 6 20.12.2008 22:50
помогите с массивами slivochny Общие вопросы C/C++ 7 21.11.2008 12:57
помогите с массивами Ibmsystem Помощь студентам 1 21.04.2008 08:10
Помогите с массивами Юль_кА Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2008 08:39