2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Помогите с задачами в паскале!!!! плз
Сообщение10.01.2010, 16:51 


10/01/10
1
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 


03/02/07
254
Киев
В паскале массивы индексируются с 1. И разберитесь в 1) с счетчиком цикла и индексами массива

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение11.01.2010, 11:43 
Заслуженный участник


11/05/08
32166
Trius в сообщении #279452 писал(а):
В паскале массивы индексируются с 1.

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

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение11.01.2010, 15:06 


03/10/06
826
ewert в сообщении #279486 писал(а):
Trius в сообщении #279452 писал(а):
В паскале массивы индексируются с 1.

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

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

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

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:03 


13/09/09
72
Не помню точно, как в паскале, но вероятно Вам для использования функции Length() придется либо изначально представлять числа в виде строк, либо перед использованием этой функции переводить число в строку.
Цитата:
b[i div 2]
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип. Да и вообще деление тут не к месту совершенно.

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:15 
Заслуженный участник


11/05/08
32166
Nikita_b в сообщении #280413 писал(а):
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип.

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

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

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

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:46 
Заслуженный участник


04/05/09
4587
Nikita_b в сообщении #280413 писал(а):
Цитата:
b[i div 2]
Так нельзя делать. В индексе массива должны быть числа типа int, а у Вас здесь будет какой то дробный тип. Да и вообще деление тут не к месту совершенно.
Оператор div в Паскале выполняет целое деление.

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 14:59 


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

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение14.01.2010, 15:56 
Заслуженный участник


26/07/09
1559
Алматы
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 


08/02/10
4
у меня задача написать программу находящую ошибку в тексте.
как проиндексировать словарь??

 Профиль  
                  
 
 Re: Помогите с задачами в паскале!!!! плз
Сообщение08.02.2010, 17:58 
Заслуженный участник


12/07/07
4522
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 


08/02/10
4
мне посоветовали использовать DBF-файл для словаря, теперь у меня есть текст с ошибками, и словарь в виде DBF-файла. это все хорошо, но я даже примерно не знаю, как будет выглядеть программа, которая разделит этот текст на слова, и затем будет по индексу сверять со словарем. Затем она должна вывести слова с ошибками на экран. Пожалуйста, помогите!!!

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


08/02/10
4
всем спасибо. решение есть

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group