Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

массивы

15K
21 марта 2006 года
alisa131
7 / / 09.02.2006
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.
325
21 марта 2006 года
Franky
723 / / 10.08.2005
Цитата:
Originally posted by alisa131
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.


В Паскале shift+F1, разделы "type", "array". Хуже - если плохо с англицким, тогда в Яндекс, искать слова "Паскаль, type, array, массивы"

3.6K
21 марта 2006 года
CrazyTimon
125 / / 13.02.2006
Цитата:
Originally posted by alisa131
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.


Читай
А мона узнать ты на 'вышке' учишься или где??

242
21 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by CrazyTimon
Читай
А мона узнать ты на 'вышке' учишься или где??



Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)

3.6K
21 марта 2006 года
CrazyTimon
125 / / 13.02.2006
Цитата:
Originally posted by OlgaKr
Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)


Ха так поступаешь у нас в Росси и сразу начинаешь учить Дельфу.....
Чтобы подойти к делфе нуно прилично знать паскаль(старая истинна).
----------------------------------------
В Израиле хорошо-о-о-о тепло-о-о-о и паскаль в школе во всю учат.А у нас в России всё через ж*?%пу
-Холодно и самому приходится учится!!:{ :{

242
21 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by alisa131
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.



Кстати Алиса если живешь по соседству заходи в гости :) помогу.

15K
21 марта 2006 года
alisa131
7 / / 09.02.2006
Цитата:
Originally posted by CrazyTimon
Читай
А мона узнать ты на 'вышке' учишься или где??



;) да.первый семестр закончила,но паскаль завалила,т.к на массивах болела).

Цитата:
Originally posted by OlgaKr
Кстати Алиса если живешь по соседству заходи в гости :) помогу.

ну так это смотря , где ты живешь.))

Цитата:
Originally posted by OlgaKr
Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)



но в нашей михлале его как ни странно учат,так как на нем лучше понимаются алгоритмы.

Цитата:
Originally posted by CrazyTimon
Читай
А мона узнать ты на 'вышке' учишься или где??



спасибо за помощь,только Дельфи немного отличается от классического Пасаля.

;)

325
22 марта 2006 года
Franky
723 / / 10.08.2005
Цитата:
Originally posted by alisa131
спасибо за помощь,только Дельфи немного отличается от классического Пасаля.

;)


:D !!!

15K
22 марта 2006 года
alisa131
7 / / 09.02.2006
Цитата:
Originally posted by Franky
:D !!!



nemnogo razobralas vchera,teper s SETom ostalos razobratsa i s matrizami :( :???:

325
22 марта 2006 года
Franky
723 / / 10.08.2005
Цитата:
Originally posted by alisa131
nemnogo razobralas vchera,teper s SETom ostalos razobratsa i s matrizami :( :???:


Может все-же проще привести задание полностью?

15K
22 марта 2006 года
alisa131
7 / / 09.02.2006
Цитата:
Originally posted by Franky
Может все-же проще привести задание полностью?




[COLOR=red]ny k primery(vopros s ekzamena ,kotorwu ne proshla):[/COLOR]
napisat fynkziu dlya BYKVENNOGO massiva razmerom N,kotoraya vozvrashaet etot masiv takim obrazom:
Pravda ili Nepravda
Pravda >> esli net povtornix bukv v masive Nepravda >> esli est' povtornie bukvi(xot' bi odna)
naprimer
" begin " Pravda
" karandash " Nepravda

929
22 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by alisa131
[COLOR=red]ny k primery(vopros s ekzamena ,kotorwu ne proshla):[/COLOR]
napisat fynkziu dlya BYKVENNOGO massiva razmerom N,kotoraya vozvrashaet etot masiv takim obrazom:
Pravda ili Nepravda
Pravda >> esli net povtornix bukv v masive Nepravda >> esli est' povtornie bukvi(xot' bi odna)
naprimer
" begin " Pravda
" karandash " Nepravda


Код:
const
  N = 10;
var
  b: Boolean;
  s: array[1..N] of Char;
  i, j: Integer;
begin
  Write('Введите строку:');
  ReadLn(s);
  b := True;
  for i := 2 to N do begin
    for j := 1 to i - 1 do
      if s[j] = s then begin
        b := False;
        Break;
      end;
    if not b then
      Break;
  end;
  if b then
    WriteLn('Правда')
  else
    WriteLn('Неправда');
end.
242
22 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by sp999
Код:
const
  N = 10;
var
  b: Boolean;
  s: array[1..N] of Char;
  i, j: Integer;
begin
  Write('Введите строку:');
  ReadLn(s);
  b := True;
  for i := 2 to N do begin
    for j := 1 to i - 1 do
      if s[j] = s then begin
        b := False;
        Break;
      end;
    if not b then
      Break;
  end;
  if b then
    WriteLn('Правда')
  else
    WriteLn('Неправда');
end.


Interesno esli govorim o funkcii tak napisat' v Pascal mozno?

Код:
st : array[1..5] of char = {'d','b','j','a','a'};
i,j : integer

function CheckArr(st[]:array of char) : boolean

for i:=1 to 4 do begin  // 5-1
  for j:=i+1 to 5 do begin
    if st=st[j] then return false;
  end;
end;
 return true;
end function
242
22 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by alisa131
ну так это смотря , где ты живешь.))


v Arade, vozle Bear-Sheva

Никак понять не могу как на Паскале функция значения возвращает P( ?

929
22 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by OlgaKr
Interesno esli govorim o funkcii tak napisat' v Pascal mozno?
Код:
st : array[1..5] of char = {'d','b','j','a','a'};
i,j : integer

function CheckArr(st[]:array of char) : boolean

for i:=1 to 4 do begin  // 5-1
  for j:=i+1 to 5 do begin
    if st=st[j] then return false;
  end;
end;
 return true;
end function


С небольшими поправками:

Код:
const
  st: array[1..5] of char = ('d','b','j','a','a');
var
  i, j: integer;

function CheckArr(st: array of char) : boolean;
var
  Result: Boolean;
begin
  Result := True;
  for i:=1 to 4 do begin  { 5-1 }
    for j:=i+1 to 5 do
      if st=st[j] then Result := false;
  end;
  CheckArr := Result;
end;
242
22 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by sp999
С небольшими поправками:
Код:
const
  st: array[1..5] of char = ('d','b','j','a','a');
var
  i, j: integer;

function CheckArr(st: array of char) : boolean;
var
  Result: Boolean;
begin
  Result := True;
  for i:=1 to 4 do begin  // 5-1
    for j:=i+1 to 5 do begin
      if st=st[j] then begin
        Result := false;
        break;
      end;
  end;
  CheckArr := Result;
end;



то есть слово result ключевое, присваеваем ему нужный тип ...
Spasibo :)

929
22 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by OlgaKr
то есть слово result ключевое, присваеваем ему нужный тип ...
Spasibo :)


Вовсе нет.
В Паскале на его месте могла быть любая другая переменная - она нужна лишь для хранения промежуточного результата, который в конце присваиваем функции.
В Делфи оно действительно "ключевое" - даже если его не присваивать функции, функция вернет то, что хранится в Result.

Естественно, в Result должно храниться значение того же типа, что и тип функции.

Удачи!

242
22 марта 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by sp999
Вовсе нет.
В Паскале на его месте могла быть любая другая переменная - она нужна лишь для хранения промежуточного результата, который в конце присваиваем функции.
В Делфи оно действительно "ключевое" - даже если его не присваивать функции, функция вернет то, что хранится в Result.
Удачи!



Izvini, uze ponyala :

 
Код:
CheckArr := result;
15K
22 марта 2006 года
alisa131
7 / / 09.02.2006
Цитата:
Originally posted by sp999
Код:
const
N = 10;
var
b: Boolean;
s: array[1..N] of Char;
i, j: Integer;
begin
Write('Введите строку:');
ReadLn(s);
b := True;
for i := 2 to N do begin
  for j := 1 to i - 1 do
    if s[j] = s then begin
      b := False;
      Break;
    end;
  if not b then
    Break;
end;
if b then
  WriteLn('Правда')
else
  WriteLn('Неправда');
end.



eta nepravilnwy pyt.nas vsex zavalili na etom .nado cherez SET delat.a v chem syt ne mogy ponyatvot kakou otvet nam dali yje posle ekzamena:

Код:
Const N=100;
Type char_d_vector=record
Entry:array[1..N] of char;
Size:integer;
End;
char_vector=array['a'..'z'] of integer;
Procedure Init(var A:char_vector);
var ch:char;
begin
for ch:='a' to 'z' do
A[ch]:=0;
end;
Function OnesAppear(A:char_d_vector):boolean;
var i:integer;
helpA:char_vector;
begin
i:=0;
Init(helpA);
repeat
i:=i+1;
helpA[A.entry]:=helpA[A.entry]+1);
until (helpA[A.entry]=2) or (i=A.size);
OnesAppear:=(i=A.size);
end;


ESLI TW PONIMAESH KAK RABOTAET TYT SET NAPISHI.

Цитата:
Originally posted by OlgaKr
v Arade, vozle Bear-Sheva


:)
dalekovato .ya v Yehude(gysh-dan)

929
22 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by alisa131
eta nepravilnwy pyt.nas vsex zavalili na etom .nado cherez SET delat.a v chem syt ne mogy ponyat.


Можно и через SET:

Код:
const
  N = 10;
var
  b: Boolean;
  s: string[N];
  i, j: Integer;
  sc: set of Char;
begin
  Write('Введите строку:');
  ReadLn(s);
  sc := [];
  b := True;
  for i := 1 to Length(s) do begin
    if s in sc then begin
      b := False;
      Break;
    end;
    sc := sc + [s];
  end;
  if b then
    WriteLn('Правда')
  else
    WriteLn('Неправда');
end.
15K
22 марта 2006 года
alisa131
7 / / 09.02.2006
Цитата:
Originally posted by sp999
Можно и через SET:
Код:
const
 N = 10;
var
 b: Boolean;
 s: string[N];
 i, j: Integer;
 sc: set of Char;
begin
 Write('Введите строку:');
 ReadLn(s);
 sc := [];
 b := True;
 for i := 1 to Length(s) do begin
   if s in sc then begin
     b := False;
     Break;
   end;
   sc := sc + [s];
 end;
 if b then
   WriteLn('Правда')
 else
   WriteLn('Неправда');
end.


obyasni pojalusta raboty seta. i chto eto znachit:if s in sc then begin?
a eta programa che to voshe menya pytaet.y tebya vse proshe i ponyatney.

Код:
Const N=100;
Type char_d_vector=record
Entry:array[1..N] of char;
Size:integer;
End;
char_vector=array['a'..'z'] of integer;
Procedure Init(var A:char_vector);
var ch:char;
begin
for ch:='a' to 'z' do
A[ch]:=0;
end;
Function OnesAppear(A:char_d_vector):boolean;
var i:integer;
helpA:char_vector;
begin
i:=0;
Init(helpA);
repeat
i:=i+1;
helpA[A.entry]:=helpA[A.entry]+1);
until (helpA[A.entry]=2) or (i=A.size);
OnesAppear:=(i=A.size);
end;
929
22 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
obyasni pojalusta raboty seta. i chto eto znachit:if s in sc then begin?
a eta programa che to voshe menya pytaet.y tebya vse proshe i ponyatney.

Вообщем, set - это множество.
Сначала я устанавливаю, что sc - пустое множество:

 
Код:
sc := [];

Затем в цикле проверяю, входит ли очередной символ строки s в это множество sc:
 
Код:
if s in sc then begin

Если входит, значит мы на каком-то предыдущем шаге уже заносили такой же символ в множество, и значит очередной символ - повторный.
Иначе добавляю очередной символ в множество:
 
Код:
sc := sc + [s];

Общая информация о множествах:
Объявление:
 
Код:
var
  s: set of <type>;

в качестве type может быть любой ординарный тип, мощность которого не превышает 256.
Присваивание:
 
Код:
s := [...];

[] - пустое множество;
['a', 'd', 'g'] - заполнение путем перечисления;
['0'..'9'] - заполнение путем диапазона.
Элементы в множестве хранятся в единственном экземпляре, т.е. если написать s := ['a', 'a', 'b'], то s будет ['a', 'b'].
Операции:
Проверка на вхождение элемента i в множество s:
i in s
Результат либо истина, либо ложь.
s1+s2 сложение множеств. Результатом будет множество, в которое входят элементы множества s1 и элементы множества s2.
s1-s2 разность множеств. Результатом будет множество, в которое входят только те элементы из множества s1, которых нет в множестве s2.
15K
23 марта 2006 года
alisa131
7 / / 09.02.2006
[COLOR=blue]spasibo bolshoe.bolee menee ponyala![/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог