массивы
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.
В Паскале shift+F1, разделы "type", "array". Хуже - если плохо с англицким, тогда в Яндекс, искать слова "Паскаль, type, array, массивы"
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.
Читай
А мона узнать ты на 'вышке' учишься или где??
Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)
Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)
Ха так поступаешь у нас в Росси и сразу начинаешь учить Дельфу.....
Чтобы подойти к делфе нуно прилично знать паскаль(старая истинна).
----------------------------------------
В Израиле хорошо-о-о-о тепло-о-о-о и паскаль в школе во всю учат.А у нас в России всё через ж*?%пу
-Холодно и самому приходится учится!!:{ :{
B]27.03 у меня экзамен.не могу писать программы с массивами.Если есть хорошая ссылка или книга по Паскалю,буду благодарна вам.
Кстати Алиса если живешь по соседству заходи в гости :) помогу.
;) да.первый семестр закончила,но паскаль завалила,т.к на массивах болела).
Кстати Алиса если живешь по соседству заходи в гости :) помогу.
ну так это смотря , где ты живешь.))
Не думаю что в Израиле на вышке Паскаль учат, слышала о Паскале только от школьников.:)
но в нашей михлале его как ни странно учат,так как на нем лучше понимаются алгоритмы.
спасибо за помощь,только Дельфи немного отличается от классического Пасаля.
;)
спасибо за помощь,только Дельфи немного отличается от классического Пасаля.
;)
:D !!!
:D !!!
nemnogo razobralas vchera,teper s SETom ostalos razobratsa i s matrizami :( :???:
nemnogo razobralas vchera,teper s SETom ostalos razobratsa i s matrizami :( :???:
Может все-же проще привести задание полностью?
Может все-же проще привести задание полностью?
[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
[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
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.
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?
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
ну так это смотря , где ты живешь.))
v Arade, vozle Bear-Sheva
Никак понять не могу как на Паскале функция значения возвращает P( ?
Interesno esli govorim o funkcii tak napisat' v Pascal mozno?
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
С небольшими поправками:
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;
С небольшими поправками:
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 :)
то есть слово result ключевое, присваеваем ему нужный тип ...
Spasibo :)
Вовсе нет.
В Паскале на его месте могла быть любая другая переменная - она нужна лишь для хранения промежуточного результата, который в конце присваиваем функции.
В Делфи оно действительно "ключевое" - даже если его не присваивать функции, функция вернет то, что хранится в Result.
Естественно, в Result должно храниться значение того же типа, что и тип функции.
Удачи!
Вовсе нет.
В Паскале на его месте могла быть любая другая переменная - она нужна лишь для хранения промежуточного результата, который в конце присваиваем функции.
В Делфи оно действительно "ключевое" - даже если его не присваивать функции, функция вернет то, что хранится в Result.
Удачи!
Izvini, uze ponyala :
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:
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.
v Arade, vozle Bear-Sheva
:)
dalekovato .ya v Yehude(gysh-dan)
eta nepravilnwy pyt.nas vsex zavalili na etom .nado cherez SET delat.a v chem syt ne mogy ponyat.
Можно и через SET:
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.
Можно и через SET:
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.
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;
a eta programa che to voshe menya pytaet.y tebya vse proshe i ponyatney.
Вообщем, set - это множество.
Сначала я устанавливаю, что sc - пустое множество:
Затем в цикле проверяю, входит ли очередной символ строки s в это множество sc:
Если входит, значит мы на каком-то предыдущем шаге уже заносили такой же символ в множество, и значит очередной символ - повторный.
Иначе добавляю очередной символ в множество:
Общая информация о множествах:
Объявление:
s: set of <type>;
в качестве type может быть любой ординарный тип, мощность которого не превышает 256.
Присваивание:
[] - пустое множество;
['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.