27.09.2009Katılım
85Mesaj
2Tepki puanı
Algoritmalar benim kafamı çok karıştırıyor. Mantıksız gelen kısımları var. Soracağım soruda bunlardan bir tanesi. Derste hocanın gösterdiği bana mantıksız geldi bende kendim yazdım. Sizce doğrusu nasıl olmalı.
Soru : Girilen 3 değerden en büyüğünü bulduran algoritmayı yazınız.
Hocanın cevabı:
1) Başla
2) A,B,C değerlerini gir.
3) A>B ise Enb=A
4) B>C ise Enb=A
5)Değilse A>C Enb=A
6)Değilse Enb=C
7)Ekrana yaz Enb
8)Bitir
Hocanın verdiği cevap bu. Bana mantıksız gelen kısım, en büyük değerin hiçbir zaman B çıkmaması. Bende bu yanlışı şu şekilde düzeltmeye çalıştım.
Benim cevabım.
1)Başla
2)A>B ve A>C ise Enb=A ise 7. adıma git
3)Değilse 4.adıma git
4)B>A ve B>C ise Enb=B ise 7.adıma
5)Değilse 6.adıma git
6)C>A ve C>B ise Enb=C ise 7. adıma git
7)Enb Ekrana yaz
8)Bitir
Bu şekilde yazılması bana mantıklı geliyor. Sınavımız var ona çalışıyoruz .
Sizce nasıl olması gerekiyor. Şimdiden cevaplar için teşekkürler.
Cevaplar
X
21.04.2008Katılım
1.217Mesaj
9Tepki puanı
Senin sorunun ne ha.
27.09.2009Katılım
85Mesaj
2Tepki puanı
Senin sorunun ne ha.
Doğru algoritmanın nasıl olması gerektiğini soruyorum. Konuyu biraz daha dikkatli okumanı öneririm.
K
30.07.2008Katılım
322Mesaj
5Tepki puanı
Hocanınkinde problem var bence. 3. satırdaki kıyas eksik olduğu gibi 3 doğru çıksa bile 4. satır kıyas için yetersiz.
Sizin algoritmada bir sayı diğer ikisi ile karşılaştırılıyor ve kesin sonuca gider.
Bu arada hangi dil bu
27.09.2009Katılım
85Mesaj
2Tepki puanı
Programlamaya giriş ve algoritma konusu . "Sözde" kod yazma mantığını öğrenmemiz gerekiyor ancak mantık hatalı. Bir programlama dili değil. Ancak "C" dilini görmeye başladık.
Sınavda böyle bir soruda benim cevabımı versem acaba hoca doğru kabul edermi.
Birde bu algoritma maddelerini , akış şemasında gösterme durumu var. İlginç....
16.04.2009Katılım
312Mesaj
3Tepki puanı
Matematiksel olarak soyle yapariz:
A > B
ve A > C ise Enb = A
ve C > A ise Enb = C
B > C
ve A > B ise Enb = A
ve B > A ise Enb = B
1. Basla
2. A, B, C degerlerini gir
2. A > B degilse 6. adima git
3. A > C ise Enb = A
4. degilse Enb = C
5. 8. adima git
6. A > B ise Enb = A
7. degilse Enb = B
8. Bitir
Gercek program yazarken, sayilarin esit olmasi gibi bir durumda hatali olur bu algoritma. Farkli oldugunuu varsaydim.
27.09.2009Katılım
85Mesaj
2Tepki puanı
Evet sayılar farklı. Aslında algoritmanın başında sayılarının birbiriyle eşit olmamasıyla ilgili bir kontrol de yapılması gerekiyor. Ancak algoritmada bazı şeylerin atlanması gerekiyor sanırım mantıksal olarak.
Kod yazmaya uzun zaman önce başladığımdan şimdi tekrar programcılığa giriş olsun algoritma olsun bazı şeyleri görmezden gelmemiz gerektiğinden sanırım, mantıksız geliyor bana.
--------------------------------------------------------------------------------
@
tolgacakirogluSizin cevabınızda doğru olabilir ancak fazla karmaşık gibi geldi . yinede teşekkürler cevabınız için.
K
30.07.2008Katılım
322Mesaj
5Tepki puanı
Matematiksel olarak soyle yapariz:
A > B
ve A > C ise Enb = A
ve C > A ise Enb = C
B > C
ve A > B ise Enb = A
ve B > A ise Enb = B
1. Basla
2. A, B, C degerlerini gir
2. A > B degilse 6. adima git
3. A > C ise Enb = A
4. degilse Enb = C
5. 8. adima git
6. A > B ise Enb = A
7. degilse Enb = B
8. Bitir
Gercek program yazarken, sayilarin esit olmasi gibi bir durumda hatali olur bu algoritma. Farkli oldugunuu varsaydim.
Senin algoritma da eksik olmamış mı. 2. adım doğru değilse 6 ya git demişin.6 ya gittiğinde ise aksi durum olursa en büyük B diyorsun.Yani B yi C ile kıyas etmeden büyük ilan ediyorsun.
27.09.2009Katılım
85Mesaj
2Tepki puanı
Benim yazdığım
[I]1)Başla
2)A>B ve A>C ise Enb=A ise 7. adıma git
3)Değilse 4.adıma git
4)B>A ve B>C ise Enb=B ise 7.adıma
5)Değilse 6.adıma git
6)C>A ve C>B ise Enb=C ise 7. adıma git
7)Enb Ekrana yaz
8)Bitir[/I]
Ben ve dedim yani. 2 karşılaştırmada doğruysa ki A sayısını aynı satırda hem B ile hemde C ile karşılaştırıyorum. Buda A'nın kesin doğru olduğunu göstermez mi ? Böylece diğer karşılaştırmaları yapmaya gerek yok diye düşünüyorum. Direk sayıyı yazdırıp programdan çıksın.
A büyük değilsede yani yine "ve" olduğumdan karşılaştırmalardan 1 tanesi de yanlış olursa sonuç yanlış çıkıyor. Böylece bir alt satıra iniyor. Bu doğru olana kadar tekrarlanıyor.
(Not: değilse kısımlarını bir alt satıra yazdım daha sonradan.)3 sayıyıda birbiriyle kıyas ediyorum .onda bir sorunun olduğunu düşünmüyorum.
07.05.2009Katılım
222Mesaj
1Tepki puanı
if
A>B
then
if
A>C
then
enbyk=A
else
enbyk=C
else
if
B>c
then
enbyk=B
else
enbyk=C
ben böyle bişey yazdım doğru gibi geliyo bana
K
30.07.2008Katılım
322Mesaj
5Tepki puanı
Sana değil arkadaşım Tolga ya dedim ben eksik diye:)
27.09.2009Katılım
85Mesaj
2Tepki puanı
@özgün87
Evet senin dediğinde doğru ve mantıklı. Kod mantığıyla düşününce böyle bir sonuç ortaya çıkıyor. Herşeyi karşılaştırıyorsun benim yazdığım gibi. A yı önce B ile daha sonrada C ile karşılaştırmışsın.
Ancak A'yı B ile karşılaştırdıktan sonra tekrar if demişsin.
if
A>B and A>C then Enb=A
elseif
B>A and B>C then Enb=B
elseif
C>A and C>B then Enb=C
bende kod mantığıyla böyle düşündüğümden algoritmasını o şekilde yazdım.
Sana değil arkadaşım Tolga ya dedim ben eksik diye:)
:) tamam . Ben yinede açıklamak zorunda hissettim kendimi :)
31.12.2007Katılım
17.486Mesaj
189Tepki puanı
şu da yapılabilir
bir tane değişken tanımlanır
tek tek kontrol ile a değişkenden büyükse değişkene a'nın verisi atanır.
bundan sonraki kontrolde b değişkenden büyükse değişkene b'nin verisi atanır
daha sonraki kontrolde ise c değişkenden büyükse değişkene c'nin verisi atanır
sonuçta değişkende kalan veri en büyük veri olmuş olur...
27.09.2009Katılım
85Mesaj
2Tepki puanı
Değişken tanımlayacağız peki tamam.
Ancak baştan A,B ve C'yi girmeden sayıları birbiriyle nasıl karşılaştırabileceğiz ?
Programın en başında verileri girmemiz isteniyor. A B C birbirinden farklı olacak. Ardışık olmasıda gerkemiyor. B veya C de en büyük olabilir.
A - B - C 'nin değerleri zaten var. Karşılaşma işleminden sonra tekrar değer atamanın veya tamamen farklı bir değer vermenin mantığını çözemedim.
Yada ne demek istediğini anlayamadım
31.12.2007Katılım
17.486Mesaj
189Tepki puanı
kullanıcıdan sayıları girmesini isteyeceksin ilk önce. daha sonra kontrol ettireceksin.
sayılar olmadan nasıl kontrol edebilirsin ki. az önceki yazdığımı da şöyle değiştirebilirsin. ilk girilen veri en büyüğün değişkenine eşitlenir daha sonra b ve c kontrol edilip en büyük sayının tanımlanan değişkende kalması sağlanır...
eğer istersen c# kodunu yazabilirim...
27.09.2009Katılım
85Mesaj
2Tepki puanı
soruda zaten girilen 3 değerden bahsediyor. O yüzden algoritmasıında tekrar A,B,C yi gir denmemiş sanırım.
Kodunu yazabilirsen daha açıklayıcı olur sanırım demek istediğin.
31.12.2007Katılım
17.486Mesaj
189Tepki puanı
a'yı en büyüğü ölçtüğüm değişken olarak düşünürsem kod şöyle olmalı :
int a,b,c;
a = int.Parse(Console.ReadLine());
b = int.Parse(Sonsole.ReadLıne());
c = int.Parse(Console.ReadLine());
if(b > a)
a = b;
if(c > a)
a = c;
Console.WriteLine("En büyük sayı : {0}",a);
Not : Kod'u denemedim direk buraya yazdım...
16.04.2009Katılım
312Mesaj
3Tepki puanı
a'yı en büyüğü ölçtüğüm değişken olarak düşünürsem kod şöyle olmalı :
int a,b,c;
a = int.Parse(Console.ReadLine());
b = int.Parse(Sonsole.ReadLıne());
c = int.Parse(Console.ReadLine());
if(b > a)
a = b;
if(c > a)
a = c;
Console.WriteLine("En büyük sayı : {0}",a);
Not : Kod'u denemedim direk buraya yazdım...
kod olarak yazilacaksa ben de Delphi'de yazayim o halde. Bu arada evet. Matematiksel olarak dedigim kismi, algoritmaya cevirirken hata yapmisim.
var
a, b, c: Integer;
begin
write( 'a degerini giriniz: ' );
readln( a );
write( 'b degerini giriniz: ' );
readln( b );
write( 'c degerini giriniz: ' );
readln( c );
if a > b then begin
if a > c then
writeln( 'en buyuk deger: ', a )
else
writeln( 'en buyuk deger: ', c );
end else
if c > b then
writeln( 'en buyuk deger: ', c )
else
writeln( 'en buyuk deger: ', b );
end;
end;
27.09.2009Katılım
85Mesaj
2Tepki puanı
Evet kodlar ile mantıklı oldu. Teşekkürler cevaplarınız için.
18.03.2007Katılım
207Mesaj
2Tepki puanı
1) Başla
2) Sayıları gir(a,b,c)
3) İşlemi yap(enbuyuk=a)
4) Eğer(enbuyuk<b) enb=b
5) Eğer(enbuyuk<c) enb=c
6) Ekrana yaz(enbuyuk)
7) Bitir
;) Biz böyle öğrenmiştik zamanında:D
U
28.11.2008Katılım
6.467Mesaj
104Tepki puanı
1) Başla
2) Sayıları gir(a,b,c)
3) İşlemi yap(enbuyuk=a)
4) Eğer(enbuyuk<b) enb=b
5) Eğer(enbuyuk<c) enb=c
6) Ekrana yaz(enbuyuk)
7) Bitir
;) Biz böyle öğrenmiştik zamanında:D
En iyisi bu :)
27.09.2009Katılım
85Mesaj
2Tepki puanı
@serious
Senin yazdığın algoritmada da A değeri en büyük çıkmıyor. A 'yı karşılaştırmayı unutmuşsun :)
18.03.2007Katılım
207Mesaj
2Tepki puanı
Klavyeden girilen ilk sayıyı direk kendisine enbuyuk değişkeni enbüyük olarak alıyor, diğer ikisiyle karşılaştırıyor zaten onlardan küçükse enbuyuk, o değişkenlerin değerini alıyor:) Biraz daha dikkatli bak:)
Satır satır çalıştır kodu sonra:):)
gördüğün ilk kıza aşık olmak gibi düşün:) daha güzelini görünce öncekini bırakıp, yenisine aşık oluyorsun:):) en güzeli bulana kadar:D:D:D
---------- saat 00:41 eklendi ---------- önceki mesaj saat 00:39 eklenmişti ----------
6. satır da nikah oluyor:D:D:D
27.09.2009Katılım
85Mesaj
2Tepki puanı
Evet haklı olabilirsin :) İlginç bir yol. Algoritmanın kendisi ilginç zaten. Onun yerine koda yönelmek çok daha iyi :)
18.03.2007Katılım
207Mesaj
2Tepki puanı
algoritmada ilk başta havada kalıyo, kod yazarken algoritmanın ne demek olduğunu daha iyi anlıyorsun. Ki kod yazdığını söylemişsin, geriye gitmek mi istedi canın:D
27.09.2009Katılım
85Mesaj
2Tepki puanı
Çok kod bilgim olduğunu söyleyemem. Asp-Php ile kodlamıştım zamanında. Web Tasarım derslerimiz vardı. Üniversite'dede "C" dili karşımıza çıktı. Algoritma dersi olmasa hiç algoritma ile uğraşmam :)
Nerde ne yapacağımı önceden belirleyeceksemde // komutu var :) açıklamasını yazarım sonra kodlarım :)
Sınavım var pazartesi günü. Umarım hoca ezbere değilde benim mantığıma puan verir :)
18.03.2007Katılım
207Mesaj
2Tepki puanı
başta herkese geldiği gibişu an sana gereksiz geliyo ama bu işte ilerledikçe algoritmanın neden bu kadar önemli olduğunu anlıycaksın;) illa açıklama olarak görme algoritmayı, izlediğin mantık sırası. 3 sayının büyüğünde belki önemli değil ama kapsamlı bi programda karşılaşılabilecek bütün durumların listelenerek gözünün önünde olmasını sağlar. Ve algoritmasını önceden tahmin edince kullanacağın değişken türünden tut, sayısına kadar herşeyi başta doğrudan ayarlarsın. Sorun çıktıkça bütün satırları bi daha değiştir saçmalığından kurtulursun ufaklık;) dediğim gibi zmanla:)
neyse sana kolay gelsin yarınki sınavında. Eğer doğru anladığını düşünüyosan aynı olmasına gerek yok hocanınkiyle, seninki de puanını alır merak etme:) Herkesin yolu farklıdır, yeter ki gideceğin yere götürsün seni o kod:) hadi rasgele:D
27.09.2009Katılım
85Mesaj
2Tepki puanı
Teşekkürler verdiğiniz bilgiler için :)
T
13.12.2009Katılım
726Mesaj
5Tepki puanı
visual basic mantığıyla bence şöyle:
1)Başla
2)A,B,C değerlerini gir
3)A > B ve A > C ise Enb=A
4)Değilse B > A ve B > C ise Enb=B
5)Değilse C > B ve C > A ise Enb=C
6)Enb=Textbox1.Text
7)Bitir
---------- saat 10:49 eklendi ---------- önceki mesaj saat 09:49 eklenmişti ----------
bende visual basic'te bir örneğini yaptım. denedim çalışıyor. isterseniz sizde deneyebilirsiniz:
http://hotfile.com/dl/24403958/c592343/Byk_Olan_Bul.rar.htmlprojeyi kendiniz yapmak istiyorsanız rarın içinde kodlar mevcut, yapmanız gereken 4 label ve 2 buton eklemek.
09.03.2009Katılım
5Mesaj
0Tepki puanı
kardes sen ogrenmek istiyorsan kendin cozumu bulmusun ama dersten gecmek istiyosan hocanin dedigi gibi yap biraz mantiksiz olsun:)
Cevabını yaz
Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.