Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 22.12.2010, 17:51   #1 (permalink)
smirns
Новичок
 
Аватар для smirns
 
Регистрация: 11.12.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Post Помогите исправить ошибку

System.IndexOutOfRangeException: Индекс находился вне границ массива. если найдете какие-либо еще ошибки тоже плиз напишите.
вот собственно и сама программа
PHP код:
program laba6;

type
  massst 
= array[1..20of string;
  
nomer = array[1..20of integer;

var
  
mass1mass2massst;
  
nomnomer;
  
inumk1k2integer;
  
flagboolean;

procedure lab6_1(k1integer; var mass1massst; var k2integer; var mass2massstnomnomer);
var
  
ijnj1j2integer;
begin
  k2 
:= 0;
  for 
:= 1 to k1 do 
  
begin
    j 
:= 1;
    
:= length(mass1[i]);
    
j1 := 0;j2 := 0;
    while (
n) do
      if (
mass1[i][j] = '+') or (mass1[i][j] = '-') or (mass1[i][j] = '*') or (mass1[i][j] = '/'then
      begin
        j1 
:= 2;
        
:= j1;
        while (
n) and (j2 0) do
          if (
mass1[i][j] = '+') or (mass1[i][j] = '-') or (mass1[i][j] = '*') or (mass1[i][j] = '/'then
            j2 
:= 1
          
else
            
:= 1;
        if (
<> 0) and (j2 <> 0) and (j1 <= j2then
        begin
          k2 
:= k2 1;
          
mass2[k2] := copy(mass1[i], j1j2 j1 1);
          
nom[k2] := i;
        
end;
        
j1 := 0;j2 := 0;
      
end
      
else
        
:= 1;
  
end;
end;

function 
lab6_2(var mass2massstk2integer): integer;
var
  
ijmaxmaxiinteger;
begin
  max 
:= 0;maxi := 0;
  for 
:= 1 to k2 do 
  
begin
    j 
:= 1;
    while (
<= length(mass2[i])) do
      
:= 1;
    if 
max then begin
      max 
:= 1;
      
maxi := i;
    
end;
  
end;
  
result := maxi;
end;

function 
lab6_3(var sstring):boolean;
var
  
flagboolean;
  
iinteger;
begin
  flag 
:= false;
  for 
:= 1 to length(s) do
    if 
s[iin ['а'..'я'then begin
      flag 
:= true;
      
insert(s[i], si);
    
end;
  
result:= flag;
end;

begin
  writeln
('введите кол-во строк');
  
readln(k1);
  
writeln('Введите 'k1' строк');
  for 
:= 1 to k1 do
    
readln(mass1[i]);
  
lab6_1(k1mass1k2mass2nom);
  if 
k2 0 then write('нет подстрок')
      else
  
begin
    writeln
('Получены подстроки:');
    for 
:= 1 to k2 do
      
writeln(mass2[i]);
    
num := lab6_2(mass2,k2);
    if 
num 0 then write('нет нужной подстроки')
    else 
begin
      writeln
('Найдена подстрока:');
      
writeln(mass2[num]);
      
flag := lab6_3(mass2[nom[num]]);
      if 
not flag then write('Без изменений')
      else 
begin
        writeln
('Измененная строка:');
        
writeln(mass2[nom[num]]);
      
endendendend
smirns вне форума   Ответить с цитированием

Старый 22.12.2010, 17:51
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В этом деле главное не торопится, а по лучше ознакомится с проблемой

Помогите исправить ошибку в программе
Помогите исправить программу на Delphi
Помогите исправить. Pascal
Помогите исправить косяки
Помогите, пожалуйста, исправить ошибку в коде

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:28.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.