C Programlama Dersleri 14 - Döngüler-1(While Döngüsü)
Вставка
- Опубліковано 12 вер 2024
- Kullandığım 2 adet Sosyal Medya Hesabının Linkleri :
Yazılım Bilimi - Instagram : bit.ly/38h04mS
Kişisel Instagram Hesabım : bit.ly/2HpPX3v
Udemy üzerindeki kurslarımdan herhangi bir tanesine aşağıdaki linke tıklayarak en düşük fiyata kaydolabilirsiniz.
Kurs Linkleri :
Bu Dersimizde döngülere giriş yaptık ve while döngüsünü gördük.İyi seyirler.
Resmi Twitter Adresimiz : / yazilimbilimi
Facebook Grubumuz
/ 853031244779781
Kardeşim, çok sade, düzgün ve anlaşılır anlatıyorsun. Hakikaten hiç bilmeyen birisi için tatmin edici bir üslub...
While(yaş > 70-80){
printf("Buralar Hep Dutluktu Oglumus");
}
10.00 dakika da eğer ki 17. satırda ki n--; işlemi yerine n++; yazarsanız sayı artarak devam edecek. Ve bilgisayar hiç durmayacak bilginiz olsun.
Obaaa, naptın pc uçtu :D
int i, sayi;
printf("Faktoriyeli alinacak sayiyi giriniz:");
scanf("%d",&sayi);
i = sayi - 1;
while(i > 0)
{
sayi = sayi * i ;
i --;
}
printf("Faktoriyel degeri:%d",sayi);
bu şekildede fazladan değişken kullanmadan yaptım
sende de 2 tane değişken var videoda da pek birşey değişmemiş
algoritmasını anlayınca geriye kalan kısım sırf eğlence :D
9:39 abi cok zekice yazılmıs program helal olsun ilk kim yazdıysa
bende de boyle basit bisey var
#include
int main(){
int sayi,sonuc=1;
printf("faktoriyeli bulunacak sayiyi giriniz ");
scanf("%d",&sayi);
int i=1;
while(i
merhaba, sondaki getchar() gerekli mi? neden kullandınız? hiç duymamıştım
Hocam resmen Faktoryel hesaplama makinesi yaptınız. cok iyi video
Hocam çok teşekkür ediyorum, çok güzel anlatmışsınız.
Hocam faktoriyel hesaplamada kullanıcı negatif sayı girerse programın yetersiz kaldığını görmez miyiz?
döngüyü yapdm "-10" girdm keyfle izliyorm B) şuan -10000000 lı birşeyde :D
:D
😂hocam bunun çözümü (n>0) yapmak mı? en doğru çözüm nedir?
@@esat29 evet n>0. vay be 5 yıl olmuş. şimdi gözüm kapalı oyun yazıyorum :D
@@mehmedcavas3069 bilgisayar mühendisliğine yeni başlayana tavsiyen var mıdır? bu arada başarılar
@@esat29 evet. derslerini aksatma. gir çoğunlukta dinleyerek zaten analyıp geçersin. isteyerek geldiysen çoğu çok kolay gelecek. hep yeni şeyler dene. merak neye kayıyorsa dene. 3-4 de freelance işler bakabilirsin
Mala anlatır gibi anlatmışsınız hocam, teşekkürler
hocam biz aslında udemy reklamı izlemeye gelmiştik arada ders anlatmışsınız sanırım lütfen reklamları bölmeyin tam izleyemiyoruz.
O reklamları youtube koyuyor cunku yazilimla ilgili seyler seyrediyorsun 😎
@@checkfl567 neden bana hiç gelmiyor ?
@ reklamsız youtube için opera tarayıcısını kullanın çok başarılı
@@checkfl567 bana hiç gelmedi
hocam neden klavyeyi dövüyonuz
Allah razı olsun başkan
hocam eger bu sekilde, cok komplex sonuclari hesaplayamayacaksa bigisayar, nasil olacak???
int değeri yerine long değeri olarak bastır sonucu ozaman istediğini alırsın tabi çok büyük sonuçlarda çıkmayacaksa...
Çok güzel anlatım oldu
Selamlar! Yandaki kod bir banka döngüsü. Kart iade edene kadar işlem sona ermiyor. Bakiyeniz hep sabit kalmıyor yaptığınız işlemlere göre değişiyor. Bu arada şifre var :D Şifre ise 3124 :) #include
int main () {
int islem,bakiye = 1000,tutar;
int sifre;
int havale = 3;
printf("Lutfen sifrenizi giriniz:");
scanf("%d",&sifre);
if (sifre != 3124){
printf("Sifreniz yanlis.
");
}
else{
printf("Sifreniz kabul edildi.
ISLEMLER:
");
while (islem != 5){
printf("
1.Para Cek
2.Para Yatir
3.Havale Yap
4.Bakiye Sorgulama
5.Kart Iade
Isleminizi seciniz:");
scanf("%d",&islem);
switch (islem){
case 1:
printf("Cekilecek tutari giriniz:");
scanf("%d",&tutar);
if (tutar > bakiye){
printf("Bakiyeniz bu parayi cekmek icin yeterli miktarda degil.
");
}
else {
bakiye = bakiye-tutar;
printf("Kalan bakiyeniz %d
",bakiye);
}
break;
case 2:
printf("Yatirilacak tutari giriniz:");
scanf("%d",&tutar);
bakiye = bakiye + tutar;
printf("Yeni bakiyeniz %d
.",bakiye);
break;
case 3:
printf("Havale yapilacak tutari giriniz:");
scanf("%d",&tutar);
bakiye = (bakiye - tutar - havale);
printf("3 TL'lik havale ucreti alinmistir. Yeni bakiyeniz %d
.",bakiye);
break;
case 4: printf("Suan ki bakiyeniz: %d
",bakiye);
break;
}
switch (islem) {
case 5: printf("Kartiniz iade ediliyor...");
break;
}
}
}
return 0;
}
eline sağlık senin bankamatiğe bu şifre kodunu nasıl entegre edersin bulamadım ama bunu yazdım hatalı giriş için
#include
int main () {
int sifre,hata=3;
for (hata>=0;hata--;){
printf("Lutfen sifrenizi giriniz:");
scanf("%d",&sifre);
if (sifre!=2844 && hata>0)
{
printf("
HATALI SIFRE
KONTROL EDIP TEKRAR GIRIN
%d DENEME HAKKINIZ KALDI!
",hata);
}
else if (sifre!=2844 && hata==0){
printf("!! KARTINIZ BLOKE OLDU !!
!! BANKANIZI ARAYIN !!");
}
else if(sifre=2844) {
printf("
Sifre Kabul Edildi
ISLEMLER:
");
}
return 0;
}
Arkadaşlar gören olursa yardımcı olursa sevinirim bunun kombinasyon halini yazmaya çalıştım ama sonuç yanlış çıkıyo sürekli sebebi nedir ?
#include
int main() {
int n1,n2;
int komb = 1;
printf("Kombinasyonunu istediginiz 1. sayiyi giriniz:");
scanf("%d",&n1);
printf("Kombinasyonunu istediginiz 2. sayiyi giriniz:");
scanf("%d",&n2);
while (n1,n2 !=0) {
printf("%d
",n1,n2);
komb = komb*(n1/(n1-n2)*n2);
n1--;
n2--;
printf("%d",komb);
}
Kardeş böyle yapılmıyo. Bildiğim kadarıyla fonksiyonları bilmen gerek;
arkadaşlar while dögüsünün şartı olarak şifre girmeye kadar ayarlayıp içine çeşitli denemeler sunarsak basit bir şifre kırma olmaz mı?
olmaz
brute force olarak geçiyor bahsettiğiniz teknik
şifrenin her bir karakteri için semboller ve harflerin büyükleri küçükleri dahil 80 karakter var desen ve 7 haneli bir şifre olsa 20.971.520.000.000 deneme yapması gerekiyor. ki 80den fazla secenek var sanırım ve 8 9 haneli bir şifre oldugunda yukarıdaki sayıyı tekrar 80 ile çarpacaksın :D kısacası basit olmaz o iş
Arkadaşlar bir şey sorucam 9:37 de while (n != 0) yerine (n>0) deseydik yine olmaz mıydı ?
Olurdu. Düşündüm de, daha iyi olurdu. Negatif bir sayı girilirse sıfıra eşitlenmeyeceği için sonsuza dek döngü çalışır. Ama n>0 dersek negatif olursa direkt dışarı atar.
'ya en alttaki kod false olunca atamıyormuydu false olması için 0 olması lazım o yüzden 720 yerine 0 yazması gerekmiyor mu yok mu yardımcı olabilecek orayı anlamadım?
Hocam "(" yazdığınızda otomatik olarak ")" tamamlama özelliğini nasıl aktif ediyoruz yardımcı olursanız çok sevinirim auto complete diye geçiyor sanırım
klavyede 1 sayısının yanında esc'nin altındaki consol tuşuna bastığın zaman kendisini tamamlıyor zaten bir ayar yapmaya gerek kalmıyor kardeşim
//2nin üslerini while ile yazırma
#include
int main()
{
int carpim=2;
while(carpim
#include
int main(){
int x=1, y=2, z, a=1;
while(x
Faktoriyel hesaplama degilde daha basit bisey yapsan olmazmi sonucta universiteye gitmeyende var ☺ (pardon lise konusuymus böyle devam )
ben ortaokulum :)
en asagiya yazdiginiz printf("dongu bitti") yi neden 10 ile gösterdi anlamadım. Artırma sebebi nedir yani
çünkü print i dedi yani hani en son i 9 oldu ya sonra döngünün sonunda i+1 yaptı ve 10 !< 10 olduğu için döngüyü bitirdi i de 10 olarak kaldığı için print i diyince 10 bastırdı
#include
#include
#include
int main (void){
setlocale (LC_ALL,"Turkish");
system ("color 2");
int x = 0;
while (x==0){
printf ("+Virüs bilgisayarınıza yükleniyor...+
");
}
getch ();
return 0;
}
:DDD çok güzel
lan açarken bile ürktüm .d
Bu döngü kısır döngü başı var da sonu yok :(
#include
#include
main()
{
//kullanıcıdan aldığı sayıyla faktöriyel hesaplayan program
int n;
int faktoriyel=1;
printf("Faktoriyelini bulmak istediginiz sayi : ");
scanf("%d",&n);
while(n != 0){
printf("%d
",n);
faktoriyel=faktoriyel*n;
n--;
}
printf("Faktoriyel degeri : %d ",faktoriyel);
getch();
}
//n-- sırayla azaltarak yazdırmış olduk
Bişeyi merak ettim mesela 3 değerini girdik fact = fact*i; surası 3 olur. i--; dersekde azaltır 2 olur diğer tur ama anlamadıgım şey ilkinde 3 ikincce 2 bulduk mesela ama bunlar arasında bi baglantı yok int fact son olarak neden çarpımları halinde yazdırıyo bunu cidden merak ediyorum
Aynen
Faktöriyel hesaplamayı anlamadım hiç ya 🥺
Merhaba şimdi benim için önemli bir şey demek istiyorum mesela benden 'n' için bir değer istediğinde cmd ekranı negatif bir değer girersem bu sonsuz negaife kadar gidiyor bunun olmaması için while döngüsü içine ne yazmalıyımm (n != 0)yerine
i>0 girilse de yeterli olur bence biraz geç oldu ama :)
bu faktoryel hesaplama işleminde makine bi seviyeden sonra negatif değer falan vermeye başlıyo sebebi nedir? örnek olarak 1de 22ye faktoryel alınca eksiyle başlayan rakam veriyo
ya bendede öyle bir sorun çıktı ama sonuç olarak biz yazılımcıyız değilmi başka yollarla bulmayı bilmeliyiz o yüzden ben o sorunu if else kullanarak 22 den sonrası için fact a -1 değerini atadım ve sorunu çözdüm sebebini bilmiyorum ama belki böyle bir çözüm işine yarar...
#include
#include
int main ()
{
int n,fak;
printf ("n degerini giriniz:
"),
scanf ("%d",&n);
fak=n;
while (n>1) { n=n-1;
fak=fak*n;
}
printf ("n sayisinin faktoriyeli: %d
",fak);
getch ();
return 0;
}
yada
Tek anlamadığım sonda printf("%d",fact ); yazdık ve çıkan bütün sonuçların çarpımını ekrana yazdı ama biz fact = fact * n; ile n' e verdiğimiz sayı 1 olana kadar n'i 1(fact) ile çarpıp ekrana yazdırmasını söylemedik mi en sonda nasıl çarpıp ekrana yazdı ?
ben de bunu anlamdımmmm
@@kafazooom489
while(n ! = 0)
{
printf("%d
", n);
fact = fact * n;
n -- - ;
}
printf("%d", fact);
printf("%d
", n); ile ekrana "scanf" ile aldığımız sayıyı yazdı daha sonra fact = fact * n; fact(1) ile girilen sayıyı çarp ve çıkan sonucu da "fact" aktar yani sayımızı 6 girdik fact=1*6
"fact" ın yeni değeri artık 6 oldu ardından n' i bir azalttık yani 6-1 ' den 5 döngü 5 ile devam edecek fact = 6 * 5 den 30 oldu. sonra yine 1 azalttık tekrardan aynı işlemleri yapacak fact = 30 * 4 sonra fact = 120 * 3 en sonda printf("%d", fact); ile ekrana fact en son değerini yazdıracak. Umarım anlatabilmişimdir.
hocam aynı programi yazdim 5 6 gibi sayilarin faktoriyelini hesapliyo ama buyuk sayilarinkini hesaplamiyo integer 2 milyar kusure kadar hesaplamiyo mu sorun ne? ?
+Ali ÇETİNKAYA long double kullanmalısın
int yerine
hocam selam, video da gecen kodu yazdim faktoriyel calisti. Yalniz 20. factoriyelde sonucu negatif vermeye basladi, sonra kuskulandim girdigim sayilarin faktoriyelini dogru hesapliyor mu diye hesap makinesi yardimi ile kontrol ettim. 12. faktoriyele kadar dogru hesapliyor, sayi 13 den itibaren programin hesapladigi faktoriyel sonucu sapitmaya, yanlis degerler vermeye basliyor.50 gibi buyuk bir rakamin faktoriyelini hesapla dedigimizde, sadece n sayilarini 50 den geriye dusuruyor 0 a kadar.. sonucun yazmasi gereken yerde 0 yaziyor..yukarida bahsettigim sapitmalarin sebebi, bilgisayarin kapasitesi yetmediginden mi? yoksa baska bir sebebi var mi ? yada ben programi yazarken hata mi yapiyorum??
bilgayarın kapasitesinden kaynaklı işletim sisteminin kullandığı bit sayısıyla ilgili bir durum
Bunun sebebi bizim sayiyi int degeri olarak almamiz ve yine int degeri olarak print etmemiz. Int degeri 2-4 byte arasi oldugundan 20 sayisinin faktoriyelini hesaplarken 4 byte ile temsil edebilecegimiz max. sayiyi geciyor ve o yuzden sacmaliyor kod. Bunu int olarak degil de unsigned long long int olarak alirsan 18,446,744,073,709,551,615 sayisina kadar sonuc veren tum faktoriyelleri hesaplarsin. Yalniz bu sefer yine 100! gibi sayilari hesaplayamazsin. Onun icinde array kullanmak gerekiyor. Detayli bilgi icin : www.codesdope.com/blog/article/how-to-calculate-100-factorial-100-in-c/
50 rakam değil yalnız
neden int fact[=1] deki =1 i yazdık? onun amacı ne ben yazmadan çalıştırdım faktoriyelin 2 katını veriyor mesela 3 ün fak ı 6 bana 12 sonucunu verdi ? oraya =1 yazınca ama 6 yı veriyor yani doğru olanı =1 in amacı ne ?
1le çarpıyo
saollan mal mal yorumlara bakiyodum anladım sonunda sorunu senin sayende dikkat etmemişim orda fact =1 diyoz saolasın la
bu arada o şöyle mesela n yi 5 dedin önce 1*5 yapıp factda kaydetti sonra 5*2 yazıp kaydetti 5*3 falan öyle onunn için
Öncelikle emekleriniz için teşekkürler bir sorum olacaktı aynı programı bende yazdım ama en son 12 de doğru sonuç veriyor 13 ve üstünde saçmalıyor hatta eksili sonuç çıkıyor neden oluyor o
int değer aralığından kaynaklanıyor kardeşim double şeklinde yaparsan daha geniş aralık hesaplar
@@burhandogan9752 çok teşekkür ederim 😊
Bir şey sormak istiyorum
#include
int main(){
int n;
int fac=1;
printf("Lutfen bir negatif olmayan tamsayi giriniz:");
scanf("%d",&n);
while (n!=0){
if(n
Kral.
abi bu cprogramini pythondan daha iyi ve guzel bir sekilde anlatmisin gerci pythonda guzeldide ama bu daha kat kat iyiy :D
çöldeki vaha gibi ^^
Bir baba evinde yok ve döngü dönmüyor gibi
her şey iyi hoş lakin şu reklamlar insanı çileden çıkartıyor. 10 dk lık dersin 5 dk sı reklam ...........
kodu aynen yazıyorum, çalışıyor, benden faktöriyel için sayı alıyor fakat herhangi bir hesap yapmadan bitiriyor nedenini bilen varsa yardımcı olabilir mi
büyük ihtimalle n in önündeki &' nu unuttun, az önce ben de unutmuşum yeni fark ettim
@@sudesgmaz2371 teşekkür ederim
c++ dosyasıyla deniyorum örnekleri. hata vermiyor lakin çalıştığında faktöriyeli de çalıştırmıyor sebebini bilen biri yardımcı olursa sevinirim
c++ dosyası için değil c dosyası için çünkü video
@@mehmetyavuzozcan8605 c dosyası nasıl açıcam c++ uygulamasından
@@caglaktepe1098 dosyayı kaydederken ismin uzantısının ".c" yap. Yani deneme.c formatında kaydet.
arkadaş ne udemy imiş ya ....
cin ve cout nedir?
printf girdisinin c++ da karşılığı cout scanf girdisininde c++ da karşılığı cin dir
hocam siz de olmasanız napacaz biz ya
While dongusunde i++ yapmasak bi sıkıntı çıkar mı illa artırmak mi gerekiyor tşkler
Örneğin başlangıç i=0 aldın diyelim , 10 tane yazdırmak istiyorsun.i degeri while içine sıfır olarak girer.Eğer i++ yapmazsan i değeri hiç değişmez ve sonsuz kere döner. İ değerini arttırma amacı 10'a kadar gelip , döngüyü durdurmak.While döngüsünü 10'da küçük olduğu sürece çalışır .Yani i++ yapmamız gerekiyor
#include
#include
int main () {
setlocale(LC_ALL , "turkish");
int n ;
printf("n değeri giriniz :");
scanf("%d" , &n);
while (n!=0) {
printf("%d" ,n);
n++;
}
return 0;
}
Ekran sayılarla doluyor. :)
Kaptan n!=0 yerine n>0 yazsak da olur muydu ?
Su sekilde olabilir :
#include
int main(){
int b =1;
int a = 1;
int n;
printf("Sayiyi Giriniz:");
scanf("%d",&n);
while (n >= b ){
a = a*(b);
b++;
}
printf("Cevap %d dir.",a);
return 0;
}
kardeşim kör olduk ne yazdığını okuyabilmek için insaf ya
#include
int main()
{
int i;
i=1;
while(i
// İf-else ve while kombosu bakmadan önce kendin dene test et
#include
#include
#include
int main() {
int sayi;
int a=1;
printf("Sayiyi giriniz=");
scanf("%d",&sayi);
if (sayi > 0) {
while ( sayi > 0 ) {
printf("%d
",sayi);
a = sayi * a;
sayi--;
}
printf("Sonuc=%d",a);
}
else if ( sayi == 0 ) printf("Sonuc=1");
else {
printf("Girdiginiz Deger Tanımsız.");
}
getch();
return 0;
}
Döngüyü i-- yazanlar +1 ygdybw7dundw
-1 dedim program kafayı yedi.
n!=0 yerine n>0 yazmak gerekiyordu ondan dolayı
Ama while kısmını if komutu içine yazmak ve else if (n=0) yazıp bir de else yapmak daha doğru olur yoksa yine negatif sayıları yanlış gösterir
Çok küçük yazılar bi tek okuyamayan bn miyim ?
Telefondan mı izliyorsun
HAMZA K evet
@@kurranur3332 bilgisayardan izleme imkanın varsa dene derim,oldukça güzel gözüküyor
bu nee yaa ben bunu anlamadımmm iq yetmedi
hey sey güzel anlatımızıda ama 14.bölüme geldik ve hala prıntf dısında pek bı sey anlatılmadıgını görüyorum .insallah ılerki videolarda böyle degildir.
abi o kadar program yazıyoruz bir sürü komut ve algoritma gördük gayet yararlı geldi bana
saçmalama.
Printf çok global bir komut bu komutun olmadığı programlama algoritması cok azdır.
printf kullanmadan bi program yazmaya çalış bakalım
slm arkadaşlar matrix oldu
#include
int main(){
int n;
int fact = 1;
printf("faktoryel isedigin sayi giriniz:");
scanf("%d",&n);
while (n != 0){
printf ("%dn",n);
fact = fact *n;
n++;
}
printf("%d",fact);
}