Pascal programlama dilinde yazılmış bu programda kullanıcıdan alınan N basamaklı bir sayıdan k tane rakamı silersek kalabilecek en büyük sayıyı bulan program yapılmıştır.
Örnek : Sayı -> 2 4 5 2 6
K=1 -> En büyük sayı = 6542
K=2 -> En büyük sayı = 654
K=3 -> En büyük sayı = 65
K=4 -> En büyük sayı = 6
Not : Sayı dizi olarak programa verilmelidir ve k sayısı dizinin eleman sayısının 1 eksiğinden büyük olmamalıdır.
Program Kodu:
Ör:
Sayının Uzunluğunu Giriniz: 5
3
5
6
2
1
Silinmesini İstediğiniz Rakam Sayısını Giriniz:2
Sayiniz : 653
Kod: Kodu kopyalamak için üzerine çift tıklayın!
uses crt;
var
a:array[1..100] of integer;
z:array[1..100] of integer;
i,j,k,b,c,max:integer;
Tus:char;
bl:boolean;
begin
clrscr;
repeat
writeln('Sayi uzunlugunu giriniz...: [1..100])');
readln(b);
writeln('Sayi degerlerini giriniz..');
for i:=1 to b do
begin
readln(c);
a[i]:=c;
end;
write('Sayiniz : ');for i:= 1 to b do write(a[i]);
writeln('');
writeln('Silinmesini istediginiz rakam sayisini giriniz.. : ');
readln(c);
c:=b-c; (*kalan eleman sayısı*)
bl:=false;
for j:=1 to c do
begin
bl:=false;
max:=a[1];
k:=1;
for i:=2 to b do
begin if max < a[i] then begin max:=a[i]; k:=i; bl:=true; end;
end;
if not bl then begin
for i:=2 to b do
begin if max = a[i] then k:=i;
end;
end;
a[k]:=-1;
z[j]:=max;
(*write('Sayiniz : ');for i:= 1 to b do write(a[i]);
writeln('');*)
end;
write('Sayiniz : ');for i:= 1 to c do write(z[i]);
writeln('');
writeln('Cikmak icin * karakterine basiniz..');
Tus:=readkey;
Until Tus='*';
readln;
end.