Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4171
Cevap
168711
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (45. sayfa)
B
13 yıl
Teğmen

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: basaran747

arkadaslar soru su: Klavyeden eleman sayısı gırılen bır ıntegerdızının elemanlarını buyukten kucuge dogru sıralayan c++ kodunu yazınız.

ben henuz sıralamaya gelemedim uykusuzlukdan mıdır nedir anlamadım diziyi alıp yazdırmayı bı turlu beceremedım ve nerde yanlıs yaptıgmı fark edemiyorum.

int n; //kullanıcı dızının kac elemanlı olcagını bu degıskene gırıcek.

cin>>n; //eleman sayısını degıskene atadım.
int dizi[n]; //kullanıcının gırdıgı eleman sayısına gore dizi olusturdum.(zannediyorumki sıkıntı burada cıkıyo?)

for(int i=0;i=n;i++) //i degiskeni n'e esıt olana kadar donucek ve dizinın son elemanına kadar kullanıcı degerlerı yazıcak.
{
cin>>dizi(i); //i yi koseli paranteze aldıgımda forum italik olarak algılıyor o yuzden normal parantez yazdım buraya.
}


for(i=0;i=n;i++) //aynı dongu bu sefer kullanıcını deger atadıgı dızıyı ekrana yazdırıcak
{
cout<<dizi(i)<<endl
; //i yi koseli paranteze aldıgımda forum italik olarak algılıyor o yuzden normal parantez yazdım buraya.
}



Bu neden calısmıyor arkadasalar.Bakın vurgulayarak soyluyorum bunun yukarıdakı sorunun cevabı olmadıgını bılıyorum benım yapmak ıstedıgım once n elemanlı dızı olusturup bu dızıye tek tek deger atayıp daha sonra for yardımıyla ekrana yazdırmak. Buyukten kucuge sıralama ısını sonra dusunucem. Simdiden tesekkurler.

int dizi[n]; <- Bu satır çalışsa bile yine de yanlış, derleyicinin bir kıyağı sadece. Hocan işi biliyorsa bunu kabul etmez. Doğrusu: int* dizi = new int[n];

for da sıkıntın var. i=n değil i == n olacak ama yapmak istediğin işleme göre o da yanlış. i == n demek "i n'ye eşit olduğu sürece döngüyü işlet" demek. Halbuki i'nin n'ye eşit olması dizi sınırlarını aştığı anlamına geliyor. Doğrusu: for(i = 0; i < n; ++i) yani "i n'den küçük olduğu sürece döngüyü işlet".


Bir not: İlk problemin çözümü aslında sizin açınızdan başlı başına bir problem. Çok büyük ihtimalle daha pointer görmemişsinizdir fakat size pointer kullanılması gereken bir ödev veriliyor. Hocanın hangi cevabı doğru kabul edeceği belirsiz. Size tavsiyem hoca pointer lı cevabı beğenmezse kodu visual c++ veya borland da derlemeyi deneyin ve hocaya neden çalışmadığını sorun. Cevap veremezse foruma yöndendirin biz ona anlatırız. Böyle şeyler sinirlerimi bozuyor kusura bakmayın. Bu ülkeden neden adam akıllı mühendis çıkmadığı bu ayrıntılarda gizli.


pointer hakkında bilgim yok ama zannediyorum go to veya ona benzer bıseyden bahsedıyorsun.

for konusunda sanırım uykusuzlugn azizliğine ugradım i n' e esit oldugu surece degıl i n'e esit olana kadar donsun dıye oyle yazmısdım ama yanlıs bır kullanım oldugunu sımdı farkedıyorum.Birde dizinin son elemanınıda kullanmam ıcın i<n yerıne i<=n kullanmam gerekmez mi?

diziyi gosterdıklerınde oyle tanımlamadılar bende o yuzden yukarıda yazdıgım gıbı tanımlamak ıstedım
int* dizi (ordaki "*" hakkındada en ufak bı fıkrım yok suan)=new int[n];

bu syntax bana .net den tanıdık gelıyor vb.netde random tanımlarkende boyle yapıyordum ama c++ da hoca daha once boyle bır kullanım gostermedıgı ıcın bende onların gosterdıklerı gıbı yapmayı dusunmustm.

zannedıyorum kendim bir kitapdan devam etsem daha yararlı olucak. Malum kılavuzu karga olanın ...

neyse ilgin için tesekkur ederm dostum





< Bu mesaj bu kişi tarafından değiştirildi basaran747 -- 30 Kasım 2012; 11:27:07 >

H
13 yıl
Yüzbaşı

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int nthreads, i, tid;
float total;
/*** Spawn parallel region ***/
#pragma omp parallel
{
/* Obtain thread number */
tid = omp_get_thread_num();
/* Only master thread does this */
if (tid == 0) {
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
printf("Thread %d is starting...\n",tid);
#pragma omp barrier
/* do some work */
total = 0.0;
#pragma omp for schedule(dynamic,10)
for (i=0; i<1000000; i++)
total = total + i*1.0;
printf ("Thread %d is done! Total= %e\n",tid,total);
}


arkadaşlar elimde böyle bir kod var compile edebiliyorum fakat mantık hatası veriyormuş ben çözemedim bir bileniniz var mı acaba ?


Bu mesaja 2 cevap geldi.
C
13 yıl
Er

34/5 kombınasyon lıstelemesı ıstıyorum . yapabılen varmı ? yardımcı olabuılecek olan varmı ?



H
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: hungrywolf

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int nthreads, i, tid;
float total;
/*** Spawn parallel region ***/
#pragma omp parallel
{
/* Obtain thread number */
tid = omp_get_thread_num();
/* Only master thread does this */
if (tid == 0) {
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
printf("Thread %d is starting...\n",tid);
#pragma omp barrier
/* do some work */
total = 0.0;
#pragma omp for schedule(dynamic,10)
for (i=0; i<1000000; i++)
total = total + i*1.0;
printf ("Thread %d is done! Total= %e\n",tid,total);
}


arkadaşlar elimde böyle bir kod var compile edebiliyorum fakat mantık hatası veriyormuş ben çözemedim bir bileniniz var mı acaba ?

? ? ? ?



B
13 yıl
Teğmen

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: basaran747

arkadaslar soru su: Klavyeden eleman sayısı gırılen bır ıntegerdızının elemanlarını buyukten kucuge dogru sıralayan c++ kodunu yazınız.

ben henuz sıralamaya gelemedim uykusuzlukdan mıdır nedir anlamadım diziyi alıp yazdırmayı bı turlu beceremedım ve nerde yanlıs yaptıgmı fark edemiyorum.

int n; //kullanıcı dızının kac elemanlı olcagını bu degıskene gırıcek.

cin>>n; //eleman sayısını degıskene atadım.
int dizi[n]; //kullanıcının gırdıgı eleman sayısına gore dizi olusturdum.(zannediyorumki sıkıntı burada cıkıyo?)

for(int i=0;i=n;i++) //i degiskeni n'e esıt olana kadar donucek ve dizinın son elemanına kadar kullanıcı degerlerı yazıcak.
{
cin>>dizi(i); //i yi koseli paranteze aldıgımda forum italik olarak algılıyor o yuzden normal parantez yazdım buraya.
}


for(i=0;i=n;i++) //aynı dongu bu sefer kullanıcını deger atadıgı dızıyı ekrana yazdırıcak
{
cout<<dizi(i)<<endl
; //i yi koseli paranteze aldıgımda forum italik olarak algılıyor o yuzden normal parantez yazdım buraya.
}



Bu neden calısmıyor arkadasalar.Bakın vurgulayarak soyluyorum bunun yukarıdakı sorunun cevabı olmadıgını bılıyorum benım yapmak ıstedıgım once n elemanlı dızı olusturup bu dızıye tek tek deger atayıp daha sonra for yardımıyla ekrana yazdırmak. Buyukten kucuge sıralama ısını sonra dusunucem. Simdiden tesekkurler.

int dizi[n]; <- Bu satır çalışsa bile yine de yanlış, derleyicinin bir kıyağı sadece. Hocan işi biliyorsa bunu kabul etmez. Doğrusu: int* dizi = new int[n];

for da sıkıntın var. i=n değil i == n olacak ama yapmak istediğin işleme göre o da yanlış. i == n demek "i n'ye eşit olduğu sürece döngüyü işlet" demek. Halbuki i'nin n'ye eşit olması dizi sınırlarını aştığı anlamına geliyor. Doğrusu: for(i = 0; i < n; ++i) yani "i n'den küçük olduğu sürece döngüyü işlet".


Bir not: İlk problemin çözümü aslında sizin açınızdan başlı başına bir problem. Çok büyük ihtimalle daha pointer görmemişsinizdir fakat size pointer kullanılması gereken bir ödev veriliyor. Hocanın hangi cevabı doğru kabul edeceği belirsiz. Size tavsiyem hoca pointer lı cevabı beğenmezse kodu visual c++ veya borland da derlemeyi deneyin ve hocaya neden çalışmadığını sorun. Cevap veremezse foruma yöndendirin biz ona anlatırız. Böyle şeyler sinirlerimi bozuyor kusura bakmayın. Bu ülkeden neden adam akıllı mühendis çıkmadığı bu ayrıntılarda gizli.


dostum diziyi senın dedgn gıbı tanımlamaya calıstım hıc bı sekılde olmadı.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int n;
cin>>n;
int dizi[n];
for(int i=0;i<n;i++)
{
cin>>dizi;
}
for(int i=0;i<n;i++)
{
cout<<"Dizinin "<<i+1<<". elamani :"<<dizi<<endl;
}
system("pause");
return 0;
}

bu kod gayet saglıklı bı sekılde calısyo burdakı dızı tanımına neden taktıgnı hala anlamıs degılm.


Bu mesaja 1 cevap geldi.
G
13 yıl
Yarbay

quote:

Orijinalden alıntı: basaran747

bu kod gayet saglıklı bı sekılde calısyo burdakı dızı tanımına neden taktıgnı hala anlamıs degılm.

Bir sürü şey yazmıştım ama sildim. Bunları şimdilik anlayacağını sanmıyorum.

Benim verdiğim kodun çalışmamasına imkan yok sen yanlış yazmışsındır. Sadece şunu söyliyim.http://codepad.org/psbMOmIp
Yazık bu hocalara verilen paraya.


Bu mesaja 1 cevap geldi.
V
13 yıl
Çavuş

quote:

Orijinalden alıntı: leventg

quote:

Orijinalden alıntı: V4ROL

merhaba
yapmak istediğim
---------------
public class ebat
{
public int _x;
public int _y;
}

ebat dizi[] = new ebat();

private void Form1_Load(object sender, EventArgs e)
{
dizi[1]._x=5;
dizi[2]._y=4;

}

kısacası dizide kalıtımı kullanmak istiyorum ama ebat dizi[]=new ebat(); derken [] kısmında hata veriyor yardımcı olurmusunuz.

const int array_kapasite = 10;
ebat[] dizi = new ebat[array_kapasite];

Kalıtım ile de pek alakalı bir konu değil bu.

ebat[] dizi = new ebat[5];
dizi[1]._y = 300;
bu şekilde kod yazıp çalıştırdıgımda dizi[1]._y=300 satırında Nesne başvurusu bir nesnenin örneğine ayarlanmadı. hatası alıyorum sebebi ne olabilir?





< Bu mesaj bu kişi tarafından değiştirildi V4ROL -- 30 Kasım 2012; 16:57:05 >

B
13 yıl
Teğmen

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: basaran747

bu kod gayet saglıklı bı sekılde calısyo burdakı dızı tanımına neden taktıgnı hala anlamıs degılm.

Bir sürü şey yazmıştım ama sildim. Bunları şimdilik anlayacağını sanmıyorum.

Benim verdiğim kodun çalışmamasına imkan yok sen yanlış yazmışsındır. Sadece şunu söyliyim.http://codepad.org/psbMOmIp
Yazık bu hocalara verilen paraya.

c++ cok iddali olabilcegim bi konu değil o yuzden hıc bı sey ıdda etmıyorum sadece denedıgımı calısmadıgını soyledım. Sende kendıne guvenen bı arkadassın bellı kı bu konuda tecrubelerınde var ama dedıgım gıbı calıstıramadım belkı yanlsı yazmısda olabılırım bılmıyorum ama calısmadı.Verdıgın lınkede baktım o satıra hatalı dıyo ancak oyle yazdıgımda program calısıyor.DEV C++ da denersen goruceksn.

birinci soruyla ugrasıyorum ancak hala aklıma yatan bı cozum bulmus degılm.

Girilen n kadar degerı tek tek karsılastırıp nasıl buykden kucuge sıralıcam muhtemelen for a sokmam gerek ama her deger gırıldıgınde hepsıyle kıyaslanma olayı kafamı karıstırdı bu konuda yardımını beklıyorum.





< Bu mesaj bu kişi tarafından değiştirildi basaran747 -- 30 Kasım 2012; 18:10:18 >
Bu mesaja 1 cevap geldi.
G
13 yıl
Yarbay

quote:

Orijinalden alıntı: basaran747
birinci soruyla ugrasıyorum ancak hala aklıma yatan bı cozum bulmus degılm.

Girilen n kadar degerı tek tek karsılastırıp nasıl buykden kucuge sıralıcam muhtemelen for a sokmam gerek ama her deger gırıldıgınde hepsıyle kıyaslanma olayı kafamı karıstırdı bu konuda yardımını beklıyorum.

Baştan sorsaydın yazardım bişeyler. En basiti seçerek sıralama algoritması Kabaca dizinin en küçük elemanını bulup ön sıradakiyle yer değiştirme şeklinde çalışır. Mesela dizi 10 elemanlı ise;
1..10 arası en küçüğünü bul ve 1. ile yer değiştir.
2..10 arası en küçüğünü bul ve 2. ile yer değiştir.
3..10 arası en küçüğünü bul ve 3. ile yer değiştir.
...
Detaylı bilgi şurada var.http://www.bilgisayarkavramlari.com/2008/08/09/secerek-siralama-selection-sort/


Bu mesaja 1 cevap geldi.
G
13 yıl
Yarbay

quote:

Orijinalden alıntı: hungrywolf

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int nthreads, i, tid;
float total;
/*** Spawn parallel region ***/
#pragma omp parallel
{
/* Obtain thread number */
tid = omp_get_thread_num();
/* Only master thread does this */
if (tid == 0) {
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
printf("Thread %d is starting...\n",tid);
#pragma omp barrier
/* do some work */
total = 0.0;
#pragma omp for schedule(dynamic,10)
for (i=0; i<1000000; i++)
total = total + i*1.0;
printf ("Thread %d is done! Total= %e\n",tid,total);
}


arkadaşlar elimde böyle bir kod var compile edebiliyorum fakat mantık hatası veriyormuş ben çözemedim bir bileniniz var mı acaba ?

main den önce bir tane } eksik bunda. Onu düzeltince bende çalıştı. Derleyiciye -fopenmp parametresi ekliyor musun? Ayrıca bu ödev falan mı yoksa openmp ile ilgileniyor musun?


Bu mesaja 1 cevap geldi.
H
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: hungrywolf

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int nthreads, i, tid;
float total;
/*** Spawn parallel region ***/
#pragma omp parallel
{
/* Obtain thread number */
tid = omp_get_thread_num();
/* Only master thread does this */
if (tid == 0) {
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
printf("Thread %d is starting...\n",tid);
#pragma omp barrier
/* do some work */
total = 0.0;
#pragma omp for schedule(dynamic,10)
for (i=0; i<1000000; i++)
total = total + i*1.0;
printf ("Thread %d is done! Total= %e\n",tid,total);
}


arkadaşlar elimde böyle bir kod var compile edebiliyorum fakat mantık hatası veriyormuş ben çözemedim bir bileniniz var mı acaba ?

main den önce bir tane } eksik bunda. Onu düzeltince bende çalıştı. Derleyiciye -fopenmp parametresi ekliyor musun? Ayrıca bu ödev falan mı yoksa openmp ile ilgileniyor musun?

paralel programming dersi alıyoruz da onunla ilgili bir çalışmaydı kod çalışıyor fakat mantık hatası veriyormuş arkadaşlarla çözemedik bir türlü tam bir de sizlere danışayım dedim teşekkür ederim yardımlarınız için.



B
13 yıl
Teğmen

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: basaran747
birinci soruyla ugrasıyorum ancak hala aklıma yatan bı cozum bulmus degılm.

Girilen n kadar degerı tek tek karsılastırıp nasıl buykden kucuge sıralıcam muhtemelen for a sokmam gerek ama her deger gırıldıgınde hepsıyle kıyaslanma olayı kafamı karıstırdı bu konuda yardımını beklıyorum.

Baştan sorsaydın yazardım bişeyler. En basiti seçerek sıralama algoritması Kabaca dizinin en küçük elemanını bulup ön sıradakiyle yer değiştirme şeklinde çalışır. Mesela dizi 10 elemanlı ise;
1..10 arası en küçüğünü bul ve 1. ile yer değiştir.
2..10 arası en küçüğünü bul ve 2. ile yer değiştir.
3..10 arası en küçüğünü bul ve 3. ile yer değiştir.
...
Detaylı bilgi şurada var.http://www.bilgisayarkavramlari.com/2008/08/09/secerek-siralama-selection-sort/

yardımın ıcın tesekkur ederım verdıgın lınkı ıncelıyorum



U
13 yıl
Teğmen

Dışarıdan girilen bir karakter dizisinden istenilen bir karakteri çıkartıp oluşan yeni diziyi ekrana çıkartacak programı yazmaya çalışıyorum.
örneğin donanımhaber girilen bir dizide a karakteri girildiğinde dizinin son hali donnımhber olacak.

#include <iostream> 
#include <iomanip>

using namespace std;

int main()
{
const int MAX = 100;
char dizi[MAX];

int x;

cout << "Karakter dizisi gir..: ";
scanf("%s",dizi);

printf("karakter giriniz..: ");
scanf("%d",&x);

printf("son hal..: %s\n",dizi);

for(int i=0;i<=MAX;i++)
{
if(dizi[i]!=x)
printf("%s",dizi[i]);

}







system("pause");
return 0;
}



burada nerede hata yapıyorum? şimdiden teşekkürler


Bu mesaja 1 cevap geldi.
G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: uykusu gelen adam

Dışarıdan girilen bir karakter dizisinden istenilen bir karakteri çıkartıp oluşan yeni diziyi ekrana çıkartacak programı yazmaya çalışıyorum.
örneğin donanımhaber girilen bir dizide a karakteri girildiğinde dizinin son hali donnımhber olacak.

#include <iostream> ?? cout | printf  
#include <iomanip> ?? cout formtting

using namespace std; ?? printf

int main()
{
const int MAX = 100;
char dizi[MAX];

int x; ?? char

cout << "Karakter dizisi gir..: ";
scanf("%s",dizi); ?? reference

printf("karakter giriniz..: ");
scanf("%d",&x); ?? int | char

printf("son hal..: %s\n",dizi);

for(int i=0;i<=MAX;i++) ?? overflow ... strlen
{
if(dizi[i]!=x)
printf("%s",dizi[i]); ?? string | char

}







system("pause");
return 0;
}



burada nerede hata yapıyorum? şimdiden teşekkürler



Yanlarına soru işareti koydum.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 2 Aralık 2012; 19:25:18 >

T
13 yıl
Onbaşı

hocam ben bir program yazarken takıldım. bunun için konu açmıştımda http://forum.donanimhaber.com/m_68720258/tm.htm
bana yardımcı olabilir misiz?


Bu mesaja 1 cevap geldi.
X
13 yıl
Yüzbaşı

Selamın aleyküm arkadaşlar ben bir program yazmak istiyorum.Program bilgisayarımızda kopyaladığımız dosyaları tutacak,kullanmak istediğimizde ona tıklayıp kullanabileceğimiz birşey olacak umarım anlatabilmisimdir.Bu konuda bana yardımcı olacak arkadaşlar buradan ulaşsın yada pm atsınlar.



H
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?

Scanf de adres.operatorunu kullanmamissin. &



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
J
13 yıl
Binbaşı

quote:

Orijinalden alıntı: sencagri


quote:

Orijinalden alıntı: jervis

herkese iyi pazarlar bir sorum var
 printf("Enter Your Number : "); 
scanf("%d",r);
double result=0.0;

for(r=1.0, t=1.0; r<=y; r+=2, t*=-1)
{ result +=(t*(1.0f/r));}
printf("pi/4 =~ %.16f\n",result);
printf("pi =~ %.16f\n",result*4.0f);


}
***tarzı bir kod yazıyorum kişiden bir sayı alacak ve bu sayıya göre pi sayısını hesaplayacak ama doğru gitmeyen bişeyler var bir bakarmısınız?

Scanf de adres.operatorunu kullanmamissin. &

hallettim teşekkürler...


Bu mesaja 2 cevap geldi.
P
13 yıl
Çavuş

merhaba arkadaşlar benim de bir sorum olacak. c# ta matris işlemleri yapan bir program yazıyorum.matris boyutunu kullanıcı girecek. ancak matrisi kullanıcıdan nasıl alacağımı bilemedim flowlayout panel ile alamyı düşünmüştüm ama büyük boyutlu matrislerde pek kullanışlı olacağını sanmıyorum.excel den alabilir miyim ve bunu nasıl yapabilirim.daha doğrusu veriyi alma kısmında bir sıkınt yok ama kullanıcı nasıl excel e girecek matrisi kafam durdu hiçbirşey yapamıyotum. yardımlarınızı bekliyorum



H
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: jervis


Önemli değil.


Bu mesaja 1 cevap geldi.