MKU BM 1. Sınıf Algoritma Final Sınavı 3. Soru Çözümü (Palidron Sayi)
MKU BM 1. Sınıf Algoritma Final Sınavı 3. Soru Çözümü (Palidon Sayi)
SORU : Bir sayı istenecek klavyeden bilgisayar bu sayının kaç basamaklı ve palidon olup olmadıgını yazıcak.palidon dediği şey de sayıyı tersten okuyunca aynı sayı çıkması misal 12321 , 121 .. bununda kontrolu yapılarak ekrana sonuç yazılacak.
NOT : İndirdiğiniz cpp dosyasını rar arşivinden çıkartarak çalıştırınız.
Cevabı İndirmek İçin Tıklayınız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/*Ali Keskin Computer Engineer Mustafa Kemal University Iskenderun www.alikeskin.org*/ #include<iostream> #include<cmath> using namespace std; int main() { int sayi,tmp,tmp2,i,k,sonsayi=0,kontrol; /*tanimlamalar yapiliyor. tmp ve tmp2 benim gecici olarak kullandgim degiskenler isterseniz a ve b olabilirdi. sayi degiskenim klavyeden isteyeceeğim değer. sonsayi sayinin tersen değerini bulmak için kullanacağım değişken. kontrol degiskenim ise sadece gecici olarak kullandigim bir degisken. tmp ,kontrol sayilarinin hepsi sayi degiskenine daha sonra esitlenmektedir.*/ cout<<"Bir Sayi Giriniz : "; cin>>sayi; //klavyeden sayi isteniyor tmp=sayi; kontrol=sayi; for(i=1; tmp>=10; ++i) /*Bu sor dögüsü içerisinde sayinin kaç basamaklı olduğunu buluyoruz*/ { tmp=(tmp-(tmp%10))/10; } cout<<sayi<<" sayisi "<<i<< " basamaklidir ";/*Kac basamakli oldugunu ekrana yazıyoruz.*/ for(k=i-1; k>=0; k--) /*Bu for içerisinde klavyeden girilen sayimizin tersten olan halini yaziyoruz. Islem su sekilde isliyor. sayimizin 10 a göre modunu alıyoruz ve sonucunu tmp2 ye esitliyoruz. Ornek 123 sayisinin 10 a gore modu 3 tur tmp2 nın degeri artik 3 oldu. devam ediyoruz isleme. sonsayi degiskenimizin ilk degeri 0 dir. sayiyi tersten yazacagimiz icin sayilari basamak degerleri ile carpmamiz ve hepsini toplamamiz lazm. tmp2 degermiz 3 tü. bu sayiyi yukarda buldugumuz basamak sayisi kadar basamak degeri ile carpıyoruz. yani 3x10^2 = 300 yapar. bu sayiyi sonsayi degerimize ekliyoruz. sonra sayi degerimizin 10 göre modunu alip mod sonucu cikarip 10 a bölüp 2 basamaklı yeni sayimizi elde ediyoruz. yani sayi =(123-3)/10 k degermiz 0 olana kadar bu işlemleri tekrarlıyoruz. */ { tmp2=sayi%10; sonsayi+=tmp2*pow(10,k); sayi=(sayi-(sayi%10))/10; } if(kontrol==sonsayi) /*klavyeden girdigimiz sayi tersten buldugumuz sonsayi ya esit mi diye kontrol ediyoruz. Esitse ekrana palidron sayidir, degilse palidron sayi degildir yazacaktir.*/ { cout<<" ve Palidon bir sayidir."<<endl<<endl; } else { cout<<" ve Palidon bir sayidir DEGILDIR."<<endl<<endl; } return 0; } |
ALİ KESKİN Mustafa Kemal University Computer Engineering Iskenderun
ahaha.. 😀 Hocam o palidon olmayacak o. Yanlış yazmışsınız. 🙂 🙂 Çözüm için ellerinize sağlık.
Merhabalar. Kodları çok yazmışsınız, ellerinize sağlık. Size belki çok basit gelebilir fakat ben işe yeni başlayan biri olarak kodları inceledim ve olayın mantığını bir türlü kafamda oturtamadım. Keşke şu kodları satır satır açıklasaydınız. Ayrıca burada tmp\’ler ne oluyor. Tam olarak açıklamalı yazsaydınız keşke. Beginner seviyisnde oldugumdan sizin gibi olayı bir bakışta çözmemi bekleyemezsiniz. Kusura bakmayın. Teşekkürler..
Herkesin olduğu gibi benimde final sınavlarım bulunmakta. Bu soru final haftasındayken soruldu araya sıkıştırdım ve çözüp paylaştım. Açıklama yapacak vaktim olmamıştı. Teşekkür ederim size hatırlattığınız için. Yukarıda açıklamaları ekledim inceleyebilirsiniz. Kolay gelsin.
Eyvallah çok teşekkür ettim.
Merhabalar…
Ekrana girilen 5 sayıdan çift olanlarını toplamını veren programı nasıl yazabiliriz?
Merhabalar hocam..
Ekrana girilen 5 sayıdan çift olanlarını toplamını veren programı nasıl yazabiliriz?
#include
using namespace std;
int main()
{
int sayi , toplam=0;
for(int i=0;i<5;i++)
{
cin>>sayi;
if(sayi%2==0)
{toplam=toplam+sayi;}
}
cout<<"Cift Sayilarin Toplami : "<