Pascal da 1′ ile 100 arasındaki tam sayılardan tek ve çift olanların ayrı ayrı toplamını bulma

kodlayamadikabi

Femtopat
Katılım
28 Ekim 2020
Mesajlar
38
Pascal da 1′ ile 100 arasındaki tam sayılardan tek ve çift olanların ayrı ayrı toplamını nasıl bulabilirim?
Pozitif mi yoksa negatif mi onu biliyorum ama bunu yapamadım. Yardım eder misiniz?
 
Son düzenleyen: Moderatör:
1'Den 100'e kadar bir döngü hazırla.
deger := sayi MOD 2; ile her bir sayının 2 ile modunu al.
deger=0 ise çift sayıdır.
else ise tek sayıdır.
ciftToplam := ciftToplam + sayi çift olanları bir degiskene topla.
tekToplam := tekToplam + sayi tek olanları bir degiskene topla.
Öncesinde toplam degişkenlerinin 0 değerlerinde olmasına dikkat et.
ciftToplam := 0
tekToplam := 0
Döngü sonunda da toplam değişkenlerinden son değerleri alabilir / yazdırabilirsin.
Kodlamayı senin yapman gerek. Algoritmayı anlamaya ve üzerinde düşünmeye çalışmalısın. Uzun süredir sadece sonuç almak için konular açmış olduğunu görmek veya düşünmek istemem(senin için).
 
Negatif dediğinizi anlamadım. 1 ile 100 arasındaki sayılar zaten pozitif. Bu yüzden toplamları da pozitif olur.

Hiç Pascal bilmeden yapmaya çalışacağım.
Önce "Hello World" nasıl yazılır, onu öğreniyoruz.
Sonra değişken tanımlamayı öğreniyoruz.
Çok karışımış be.

For döngüsü ile 1-100 arası geziyorsun. Elindeki sayının 2 ile mod'unu alıyorsun. Bu sayede 2'ye bölünce kalan sayıyı elde ediyorsun. Bu sayı 1 ise sayı tektir, 2 ise çifttir. Ona göre if ile gerekli şart işlemini uyguluyorsun. Sana toplamları gerektiği için başta tanımladığın tekler ve çiftler değişkenlerine elde ettiğin değerleri ekliyorsun. Sonda da yazdırıyorsun.

Çeşitli syntax hataları veya Pascal'da alışılagelmedik şekilde kod yazımları görülebilir. Bu şekilde çalışabilir hale getirdim.

Sonuç:
Kod:
Program HelloWorld(output);

var
    tekler, ciftler, a, b : integer;

begin

    tekler := 0;
    ciftler := 0;
    
    for a := 1 to 100 do
    begin
        b := a mod 2;
        
        if b = 1 then
            tekler := tekler + a
        else
            ciftler := ciftler + a
        
    end;
    
    writeln('Tek sayilarin toplami: ', tekler);
    writeln('Cift sayilarin toplami: ', ciftler);
    
end.
 
Bu sayı 1 ise sayı tektir, 2 ise çifttir.

1 Ise tektir doğru, b := a mod 2; b hiçbir zaman 2 olamaz. Doğru karşılığı 0 ise çifttir. Kodunuzda 1 ise tek; değilse çift olarak kurguladığınız için kodsal bir sıkıntı yok. Düşünce oyunu gibi kalmış olabilir düzeltme olarak eklemek istedim :) saygılar.
 
1'Den 100'e kadar bir döngü hazırla.
deger := sayi MOD 2; ile her bir sayının 2 ile modunu al.
deger=0 ise çift sayıdır.
else ise tek sayıdır.
ciftToplam := ciftToplam + sayi çift olanları bir degiskene topla.
tekToplam := tekToplam + sayi tek olanları bir degiskene topla.
Öncesinde toplam degişkenlerinin 0 değerlerinde olmasına dikkat et.
ciftToplam := 0
tekToplam := 0
Döngü sonunda da toplam değişkenlerinden son değerleri alabilir / yazdırabilirsin.
Kodlamayı senin yapman gerek. Algoritmayı anlamaya ve üzerinde düşünmeye çalışmalısın. Uzun süredir sadece sonuç almak için konular açmış olduğunu görmek veya düşünmek istemem(senin için).

Haklısınız ama mezun olmak için çabalıyorum sadece ileride bu işi yapmayacağım çünkü ne kadar çalışsam da anlayamıyorum. :(
Negatif dediğinizi anlamadım. 1 ile 100 arasındaki sayılar zaten pozitif. Bu yüzden toplamları da pozitif olur.

Hiç Pascal bilmeden yapmaya çalışacağım.
Önce "Hello World" nasıl yazılır, onu öğreniyoruz.
Sonra değişken tanımlamayı öğreniyoruz.
Çok karışımış be.

For döngüsü ile 1-100 arası geziyorsun. Elindeki sayının 2 ile mod'unu alıyorsun. Bu sayede 2'ye bölünce kalan sayıyı elde ediyorsun. Bu sayı 1 ise sayı tektir, 2 ise çifttir. Ona göre if ile gerekli şart işlemini uyguluyorsun. Sana toplamları gerektiği için başta tanımladığın tekler ve çiftler değişkenlerine elde ettiğin değerleri ekliyorsun. Sonda da yazdırıyorsun.

Çeşitli syntax hataları veya Pascal'da alışılagelmedik şekilde kod yazımları görülebilir. Bu şekilde çalışabilir hale getirdim.

Sonuç:
Kod:
Program HelloWorld(output);

var
    tekler, ciftler, a, b : integer;

begin

    tekler := 0;
    ciftler := 0;
   
    for a := 1 to 100 do
    begin
        b := a mod 2;
       
        if b = 1 then
            tekler := tekler + a
        else
            ciftler := ciftler + a
       
    end;
   
    writeln('Tek sayilarin toplami: ', tekler);
    writeln('Cift sayilarin toplami: ', ciftler);
   
end.
Program çalıştığında öğrencinin adı, soyadı sırasıyla istenir. Sonrasında bölümü istenir. Bölüm isteme seçeneklidir. 1 seçilirse “BİLGİSAYAR PROGRAMCILIĞI”, 2 seçilirse “TURIZM OTELCILIK” programı aktif olur ve o bölüme ait 3 er öğretim elemanı ekrana gelir (1 ya da 2 seçiminde gelen öğretim elemanları kendilerine ait olan PROCEDURE lerden yüklenerek gelir). Hangi öğretim elemanı seçilirse ( İsminin Baş Harfine Göre Seçilecek ) o öğretim elemanı ve verdiği derse göre öğrenci Vize sınavı, 2 Kısa sınav ve Final sınavı notları girilir. Vize sınavı %30, Kısa sınavlar % 20 ve Final sınavı %50 etki edecektir.

Sınavdayım şu an bu kısmı yapamadım bu dersi 3. alışım yardım eder misin :(
 
Son düzenleme:

Yeni konular

Geri
Yukarı