• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

KreN.del

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

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

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

morpheus

<!--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

очень просто:

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

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

rezultat = i+1
 
B

Barmutik

Для: Morpheus

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

morpheus

Для: Barmutik
тьфу... не сразу вьехал :(
 
P

Programmer_Hard

Тогда так

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

Как вариант:
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

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

Barmutik

Для: KreN.del

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

KreN.del

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

DIR3ct0r

я полный код и представил, только 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

Мне кажется код не дописан. :)
Код:
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.
Уж простите за дотошность. :(
 
A

acorn

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

pinhead

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

KreN.del

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!