2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Помогите с задачами в паскале!!!! плз
Сообщение10.01.2010, 16:51 
1) Написать програмуу, выводящую на экран элементы заданного массива, значение которых не превышает номера ячейки, в которой они расположены.

2)Написать программу, которая из суммы пар элементов заданного массива формирует новый массив. Например, если задан массив а(1),а(2),......,а(н), то элементы нового массива будут вычисляться следующим образом: б(1)=а(1)+а(2), б(2)=а(3)+а(4) и т.д.

-- Вс янв 10, 2010 17:09:51 --

1)for I := 0 to length(ArrayName) - 1 do
begin
if ArrayName[i] <= I then
Writeln(ArrayName[I]);
end;



2)for i:=0 to length(a) - 1 do
begin
if i mod 2 = 0 then
begin
b[i div 2] := a[i] + a[i+1];
end;
end;

вот вроде правильно делаю... оформить правильно не знаю как, чтобы работало

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение11.01.2010, 01:58 
В паскале массивы индексируются с 1. И разберитесь в 1) с счетчиком цикла и индексами массива

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение11.01.2010, 11:43 
Trius в сообщении #279452 писал(а):
В паскале массивы индексируются с 1.

В Паскале массивы индексируются с чего заблагорассудится.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение11.01.2010, 15:06 
ewert в сообщении #279486 писал(а):
Trius в сообщении #279452 писал(а):
В паскале массивы индексируются с 1.

В Паскале массивы индексируются с чего заблагорассудится.

В дельфи точно, наверное и в паскале.
var A: array[101..200] of char;

Автор топика, где объявление массивов у вас, без этого код никуда не годится.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:03 
Не помню точно, как в паскале, но вероятно Вам для использования функции Length() придется либо изначально представлять числа в виде строк, либо перед использованием этой функции переводить число в строку.
Цитата:
b[i div 2]
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип. Да и вообще деление тут не к месту совершенно.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:15 
Nikita_b в сообщении #280413 писал(а):
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип.

Так можно и даже нужно (хотя оформление цикла и не самое разумное): div -- это целочисленное деление.

Nikita_b в сообщении #280413 писал(а):
вероятно Вам для использования функции Length() придется либо изначально представлять числа в виде строк, либо перед использованием этой функции переводить число в строку.

А вот функция Length тут вовсе не при чём. Автор замышлял длину массива, но для неё стандартной функции нет.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:46 
Nikita_b в сообщении #280413 писал(а):
Цитата:
b[i div 2]
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип. Да и вообще деление тут не к месту совершенно.
Оператор div в Паскале выполняет целое деление.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:59 
Цитата:
А вот функция Length тут вовсе не при чём. Автор замышлял длину массива, но для неё стандартной функции нет.
В некоторых задачах удобно перевести число в строку и работать уже с ней. Здесь такой вариант тоже возможен.
Цитата:
Так можно и даже нужно (хотя оформление цикла и не самое разумное): div -- это целочисленное деление.
Да точно. Прощу прощения здесь не прав. :(

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 15:56 
2vkrotov
Во второй задачке будет эффективней организовать цикл примерно так:
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
...
    if Length(a) mod 2=1 then
        Error(); { Array length must be even. }

    i:=0; { Index of the first item. }
    j:=i;

    repeat
        b[i]:=a[j]+a[j+1];

        Inc(i);
        Inc(j, 2);
    until j=Length(a);
...
 

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение08.02.2010, 17:17 
у меня задача написать программу находящую ошибку в тексте.
как проиндексировать словарь??

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение08.02.2010, 17:58 
ewert писал(а):
... Автор замышлял длину массива, но для неё стандартной функции нет.
В Borland pascal (по крайней мере, с BP7.0) есть функции Low и High, которые, применительно к массиву, возвращают его минимальное и максимальное значение индекса. К слову, для целых типов функции вернут наименьшее и наибольшее значение, которые может хранить переменная.
Например, выполним следующий
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
type
  TXX = -1..20;
var
  W: Integer;
  A: array[3..11] of Integer;
  XX : TXX;

function test(C: array of Integer): string;
begin
  writeln(Low(C), '   ', High(C));
end;

begin
  writeln(Low(W), '   ', High(W));
  writeln(Low(A), '   ', High(A));
  test(A);
  writeln(Low(XX),'   ', High(XX));
end.
Получим
Код:
-32768  32767
3   11
0   8
-1   20
По крайней мере, с используемой в Delphi 5 версии , в Borland Object Pascal функция length возвращает число символов в строке или элементов в массиве.
Например, выполним в Delphi 5
Код:
var
T: array[-1..100] of Integer;
begin
writeln(length(T));
end.
Получим 102.
(В BP7.0 length использовалась только со строками.)

NellyMashykova в сообщении #286514 писал(а):
у меня задача написать программу находящую ошибку в тексте.
как проиндексировать словарь??
NellyMashykova, думаю, лучше сформулировать вопрос подробнее, указав, чем Вы можете (планируете) пользоваться.

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение28.02.2010, 11:27 
мне посоветовали использовать DBF-файл для словаря, теперь у меня есть текст с ошибками, и словарь в виде DBF-файла. это все хорошо, но я даже примерно не знаю, как будет выглядеть программа, которая разделит этот текст на слова, и затем будет по индексу сверять со словарем. Затем она должна вывести слова с ошибками на экран. Пожалуйста, помогите!!!

 
 
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение03.03.2010, 16:00 
всем спасибо. решение есть

 
 
 [ Сообщений: 13 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group