[delphi] Найти количество элементов массива

  • Автор темы KreN.del
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

KreN.del

Гость
#1
Не могу понять каким кодом реализовать эту программу.

Дан одномерный целочисленный массив А состоящий из N элементов (0<N<20;-10000<A<10000).Найти количество элементов,старшая и младшая цифры которых совпадают.

Кто мне может подсказать....
Буду примного благодарен, если вы мне напишите код этой маленькой программы..
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
<!--QuoteBegin-KreN.del+26:11:2006, 19:57 -->
<span class="vbquote">(KreN.del @ 26:11:2006, 19:57 )</span><!--QuoteEBegin-->Найти количество элементов,старшая и младшая цифры которых совпадают.
[snapback]48942" rel="nofollow" target="_blank[/snapback]​
[/quote]

КАК такое может быть у одномерного массива... может массивов несколько...

может надо получить кол-во одинаковых минимальных и максимальных значений???
 
P

Programmer_Hard

Гость
#3
очень просто:

на C++ , паскаль не помню :

int first=A[0];
for(int i=1;i<20;i++){
if(A==A[0]) break;
}

rezultat = i+1
 
B

Barmutik

Гость
#4
Для: Morpheus

Да всё понятно .. ему надо найти число элементов у которых в написании первая и последняя цифра одинаковые .. например число 121, 2562 ему подходит, а 43 нет...
 
P

Programmer_Hard

Гость
#6
Тогда так

int first(int a){
int f=0;
for(int i=0;i<10;i++){
if(f=(a/(10*i))<10) break;
}
return f;
};

int lost(int a){
int l;
l=a%10;
}

int kol_vo=0;
for(int i=0;i<20;i++){
if(first(A)==lost(A)) kol_vo++;
}

cout<<kol_vo;
 
D

DIR3ct0r

Гость
#7
Как вариант:
1. переводим значение массива в строку
s:= IntToStr(a);
2. получем первую и последнюю цифры
s1:= copy(s, 1, 1);
sN:= copy(s, Length(s), 1);
3. сравниваем, если равны увеличиваем счетчик
if s1 = sN then Inc(Counter);

Код:
var i, Counter: integer;
Counter:= 0;
for i:= 0 to n do
if copy(s, 1, 1) = copy(s, Length(s), 1) then Inc(Counter);
ShowMessage(IntToStr(Counter));
 
K

KreN.del

Гость
#8
Ты не мог бы полный код программы написать начиния с var и заканчивая end'om...
И насчет C++ , я прогу выполняю на языке Pascal...
 
B

Barmutik

Гость
#9
Для: KreN.del

Ну вам же вроде предоставили полынй код на С++ .. траслируйте его в Паскаль...
 
K

KreN.del

Гость
#10
Я просто пока на стадии обучения и не знаю как транслировать из языка в язык..
Поэтому если бы ты помог и я научился это делать на моем примере.. Было бы супер..
 
D

DIR3ct0r

Гость
#11
я полный код и представил, только begin с end не написал
Код:
var 
i, Counter: integer;
begin
Counter:= 0;
for i:= 0 to n do
if copy(s, 1, 1) = copy(s, Length(s), 1) then Inc(Counter);
writeln(Counter);
end;
 
P

pinhead

Гость
#12
Мне кажется код не дописан. :)
Код:
var
i, Counter: integer;
begin
Counter:= 0;
for i:= 0 to n do
if copy(s, 1, 1) = copy(s, Length(s), 1) then Inc(Counter);
writeln(Counter);
end;
Я не говорю не правильный, у DIR3ct0r, просто не дописан.
Вот завершённый код
Код:
Program TorhOFF;
uses
CRT;
const
N=20;
var
i, Counter: word;
s: String;
arr: array[1..N] of integer;

Procedure InitArray;
begin
{Процедуру инициализации(заполнения) массива напишите сами}
end;

begin
Counter:= 0;
InitArray;
for i:= 1 to N do
begin
Str(arr[i], s);
if copy(s, 1, 1) = copy(s, Length(s), 1) then 
Inc(Counter)
end; 
writeln(Counter)
end.
Уж простите за дотошность. :(
 

acorn

PHP Developer
29.08.2004
585
3
#13
Для: pinhead
Какой uses CRT, а вдруг надо написать на Object Pascal в среде Delphi? Лучше написать код, который менее зависим от компилятора.
 
P

pinhead

Гость
#14
Для Acorn
Uses CRT написал по привычке. <_<
И заметьте ни одной процедурой и функцией из этого модуля не воспользовался.
И ещё недочёт, уже в моей программе :( , вместо
Код:
Str(arr[i], s);
надо писать
Код:
Str(abc(arr[i]), s);
так как в задании сказано что числа могут быть как положительные так и отрицательные!
 
K

KreN.del

Гость
#15
Короче сидел сегодня пол дня. Вроде допер. Всем спасибо.. Теперь у меня уже есть следующий вопрос, но более сложный.. Но это в другой теме, так как она слегка другого плана...
 
Статус
Закрыто для дальнейших ответов.