ОБСУЖДЕНИЕ

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

14 ответов 14,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
Не могу понять каким кодом реализовать эту программу.

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

Кто мне может подсказать....
Буду примного благодарен, если вы мне напишите код этой маленькой программы..
 
<!--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]

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

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

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

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

rezultat = i+1
 
Для: Morpheus

Да всё понятно .. ему надо найти число элементов у которых в написании первая и последняя цифра одинаковые .. например число 121, 2562 ему подходит, а 43 нет...
 
Для: Barmutik
тьфу... не сразу вьехал :(
 
Тогда так

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;
 
Как вариант:
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));
 
Ты не мог бы полный код программы написать начиния с var и заканчивая end'om...
И насчет C++ , я прогу выполняю на языке Pascal...
 
Для: KreN.del

Ну вам же вроде предоставили полынй код на С++ .. траслируйте его в Паскаль...
 
Я просто пока на стадии обучения и не знаю как транслировать из языка в язык..
Поэтому если бы ты помог и я научился это делать на моем примере.. Было бы супер..
 
я полный код и представил, только 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;
 
Мне кажется код не дописан. :)
Код:
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.
Уж простите за дотошность. :(
 
Для: pinhead
Какой uses CRT, а вдруг надо написать на Object Pascal в среде Delphi? Лучше написать код, который менее зависим от компилятора.
 
Для Acorn
Uses CRT написал по привычке. <_<
И заметьте ни одной процедурой и функцией из этого модуля не воспользовался.
И ещё недочёт, уже в моей программе :( , вместо
Код:
Str(arr[i], s);
надо писать
Код:
Str(abc(arr[i]), s);
так как в задании сказано что числа могут быть как положительные так и отрицательные!
 
Короче сидел сегодня пол дня. Вроде допер. Всем спасибо.. Теперь у меня уже есть следующий вопрос, но более сложный.. Но это в другой теме, так как она слегка другого плана...
 
Статус
Закрыто для дальнейших ответов.