new ebat() sadece 1 adet ebat objesi oluşturuyor. Sizin istediğiniz array oluşturmak. c# pek bilmiyorum ancak muhtemelen şöyle birşey olmalı: ebat dizi[] = new ebat[x]; x yerine kaç elemanlı array oluşturacaksanız o gelecek. |
sağol dostum ama olmadı |
const int array_kapasite = 10; ebat[] dizi = new ebat[array_kapasite]; Kalıtım ile de pek alakalı bir konu değil bu. |
tesekkürler dostum ![]() |
arkadaşlar ödev şu Task 2: Write a program that reads two positive integers corresponding to two year values, ensures that the first year value is less than the second, and then determines and outputs all year values for leap years. A leap year is a year that can be evenly divided by 4, unless it is a centennial, in which case it must be evenly divided by 400. For example, 1600 and 1992 are leap years, whereas 1700 and 1998 are not (because 1700 even if it can be evenly divided by 4, it can not be evenly divided by 400). ben ise şöle yaptım ama olmadı olamadı #include<stdio.h> #include<conio.h> int main() { int year1,year2,a,b,c; printf("Enter year 1: \n"); scanf("%d",&year1); printf("Now year 2 please: \n"); scanf("%d",&year2); if(year2>year1) { while(year1<=year2) { year1++; year1%4==a; year1%400==b; year1%100==c; if((a==0)&&(b==0)&&(c!=0)) printf("%d",year1); } } getch(); return 0; } nasıl yapmam gerekir? |
http://support.microsoft.com/kb/214019/en-us
Şimdi koda gelirsek; " year1%4==a; "--> Bu bir eşitlik testi. Eğer bölümü a'ya atamak istiyorsan " a=year1%4; " olacak. Direk kontrol etmek istersen " if(year1%4==9) " yazabilirsin. Sonra o kısım düzeldi diyelim. " if((a==0)&&(b==0)&&(c!=0)) " Burada yıl 4 ve 400'e tam bölünmüş ama 100'e bölünmemiş mi diye kontrol etmişsin. 400'e bölünüp 100'e bölünemeyen bir sayı yok diyebiliriz. { 4'e bölünüyor mu? {Hayır : Next; }:{Evet : 100'e bölünüyor mu? { Hayır: Ekrana bas; Next;}:{Evet: 400'e bölünüyor mu ? { Evet : Ekrana bas; Next; }:{Hayır: Next;}}}} yapman lazım. Kodu direk düzeltsem çok daha kolay olacaktı sanki :) |
artık yıl olayında o 100 her şeyi bozuyo zaten bi yapamadım gitti yani ekrana bastıramamamif yüzünden mi |
http://codepad.org/gRmV2GIp Yukarıda örnekledim. Kodunda hem if yanlış hem diğer % işlemleride yanlış. |
teşekkür ederim çok mu olacak bilmiyorum ama en başta bi if var ya if(year1<year2) olan onu sağlamazsa en başa dönmesini nasıl yapabilirim |
Önce kodun son halini yaz. Ondan sonra bir bakalım. |
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 |
#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 ? |
34/5 kombınasyon lıstelemesı ıstıyorum . yapabılen varmı ? yardımcı olabuılecek olan varmı ? |
? ? ? ? ![]() |
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. |
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. ![]() |
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? |
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.
Bu mesaja 2 cevap geldi. Cevapları Gizle