Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

tanımları yapabilmeniz gerekmektedir .

Benzer bir sunumlar


... konulu sunumlar: "tanımları yapabilmeniz gerekmektedir ."— Sunum transkripti:

1 tanımları yapabilmeniz gerekmektedir .
BÖLÜM 3 DİZİLER VE STRİNGLER Bazen basit değişkenler bir takım sorunların çözülmesi için yeterli olmazlar. Örneğin iki matrisin toplamını bulabilecek bir program basit değişkenler ile yazılamaz. Ya da bir dizi değer üzerinde sıralama yapabilecek program, bir dizi sayı içerisinde istenilen değeri bulabilecek program yine basit değişkenler ile yazılamaz. Bu tip programlar için hatta bir çok benzeri program için dizi veya matris tanımları yapabilmeniz gerekmektedir .

2 Dizi, aynı tipte verilere tek bir isimle erişebilmek için kullanılan bir kümedir. Bir dizinin bütün elemanları bellekte ardışık olarak saklanır. Dolayısı ile adres ardışık olarak artırıldığında dizinin elemanlarına sırasıyla ulaşılabilir. Karakter tipli değişkenlerden oluşan diziler genellikle string olarak adlandırılır. Diziler bir boyutlu veya daha çok boyutlu olabilirler. Dizilerin indis değerleri sıfırdan başlayan pozitif tam sayılardır. Dizilerde dizi boyutu köşeli parantez [ ] içinde belirtilir. degisken_türü ad[eleman sayısı][ikinci_boyut]...; int x[20]; Böyle bir bildirimle derleyici, 20 tane tam sayının saklanacağı bellek alanı ayırır ve bu alanın adresini dizi adına atar. x x[0] x[1] … x[19]

3 float y[2] [3] ; Çift boyutlu ( 2 satır 3 sütun ) float içerikli dizi
int a[3] = {3,5,7}; tek boyutlu diziye ilk değer atama float b[2] [3] = {{ 5.1,0.7,-4.2}, {-3.0,6.4,12.5}}; veya, float b[2] [3] = { 5.1,0.7,-4.2, -3.0,6.4,12.5}; çift boyutlu diziye ilk değer atama

4 Örnek # include <stdio.h> int sayi [5] ={10,12,9,5,0}; int i ; main () { for ( i =0 ; i<5 ; i++ ) printf (“%d ”,sayi [i] ) ; } #include <stdio.h> #include <conio.h> #include <iostream.h> main() { int i,a[5]; for(i=0;i<5;i++)scanf("%d", &a[i]); system("CLS"); for(i=0;i<5;i++)printf ("a[%d]=%d\n",i,a[i]); getche(); }

5 #include <stdio.h>
#include <conio.h> main() { int i,j; int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; for(i=0;i<3;i++){ for(j=0;j<4;j++) printf("a[%d][%d]=%d ",i,j,a[i][j]);printf("\n"); } getche();} #include <stdio.h> #include <conio.h> main() { int i,j,a[3][4]; for(i=0;i<3;i++){ for(j=0;j<4;j++)scanf("%d",&a[i][j]); } for(j=0;j<4;j++)printf("a[%d][%d]=%d ",i,j,a[i][j]);printf("\n"); getch();

6 Örnek # include <stdio.h> # include <conio.h> int i, a[2] [10] ; main () { clrscr () ; for ( i=0 ; i<10 ; i++ ){ printf (“%d .sayıyı gir= “, i+1 ) ; scanf (“%d “, &a[0] [i] ) ; a[1] [i] = a[0] [i] * a[0] [i] ; } for ( i=0 ; i<10 ; i++) printf ( “\n %d. sayının karesi = % d”, i+1,a[1] [i] ); getche () ;

7 Örnek Klavyeden girilen sayıyı ikilik sisteme çeviren program.
# include <stdio.h> # include <conio.h> main () { int a, i=0 ,b [10]; clrscr () ; printf (“Bir sayı giriniz”); scanf("%d“,&a ); don1 : b[i]=a%2; a=a/2 ; i++; if (a>=2) goto don1 ; printf ("%d\n “,a); while (i) { i--; printf("%d”,b[i]); } // veya for(c=i-1;c>1;c--) printf (" %d”, b[c]) ; getche () ; }

8 Örnek Bir sayı dizisinin elemanlarının toplamı
#include <stdio.h> #include <math.h> #include <conio.h> int i,n, a[20],toplam; main(){ printf(“dizi boyutunu giriniz 1-20 arası:”);scanf(“%d”,&n); toplam=0; for( i=0; i<n ; i++) { printf(“%d dizi elemanini gir:”,i+1); scanf(“%d”, &a[i] ); toplam=toplam+a[i]; } printf(“toplam=%d”,toplam); getch();

9 Örnek Bir sayı dizisinin en büyük elemanını bulma
#include <stdio.h> #include <conio.h> #include <math.h> int i,eb,m, a[10]; main(){ for(i=0; i<10;i++) { printf("%d elemanı giriniz:", i+1); scanf(“%d”, &a[i] ); } eb=a[0]; for( i=1; i<10 ; i++) if(eb<a[i]) eb=a[i]; printf("\n En Büyük Sayı=%d",eb); getch();

10 Örnek Sıfırdan farklı NxN’lik bir matrisin esas köşegeni üzerindeki elamanları 1 (bir) yapma
# include<stdio.h> # include<math.h> # include<conio.h> int i,j,n; float a[10] [10],b[10]; main( ) { printf ("n sayisini giriniz.."); scanf ("%d\n",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("\n%f",&a[i][j]);} } b[i]=a[i][i]; for(j=0;j<n;j++) { a[i][j]= a[i][j]/ b[i]; printf (“%f\t”, a[i][j]);} printf(“\n”); } getche(); }

11 Örnek mxn boyutlu bir matrisin en büyük elemanını bulma
# include<stdio.h> # include<math.h> # include<conio.h> int i,j,n,m,eb; int a[20][20]; main ( ){ printf(“m ve n sayisini giriniz..” ); scanf (“%d %d”,&m,&n); for(i=0;i<m;i++) { for(j=0;j<n;j++) scanf(“%d”,&a[i][j]); } eb=a[0][0]; for(j=0;j<n;j++) if (eb<a[i][j]) eb=a[i][j]; printf(“en büyük sayi=%d\n”,eb); getche();

12 #include <stdio.h> #include <math.h>
Örnek NxN’lik bir matrisin transpozesinin bulunması #include <stdio.h> #include <math.h> #include <conio.h> int i,j,n,z; int a[20][20], b[20] [20]; main() { printf(“n sayisini giriniz..”); scanf(“%d”,&n); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf (“%d”,&a[ i ] [ j ]); for(j=0;j<n;j++) b[ i ] [ j ]=a[ j ] [ i ]; for(i=0;i<n;i++){printf(“\n”); for(j=0;j<n;j++) printf (“%d”,b[ i ] [ j ]);} getch();}

13 #include <stdio.h> #include <math.h>
Örnek Girilen iki matrisin toplamını #include <stdio.h> #include <math.h> #include <conio.h> int i,j,n,z; ini a[20][20], b[20] [20], t[20] [20]; main() { printf(“n sayisini giriniz..”); scanf(“%d”,&n); for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf (“%d”,&a[ i ] [ j ]); scanf (“%d”,&b[ i ] [ j ]); //a[0][0] b[0][0] değerleri giriliyor t[ i ] [ j ]=a[ i ] [ j ]+b[ i ] [ j ]; } for(i=0;i<n;i++) {printf(“\n”); for(j=0;j<n;j++) printf (“%d”,t[ i ] [ j ]); } getch();}

14 Örnek işlemini gerçekleştiren program.
#include<stdio.h> #include<math.h> int n,k,toplam=0,carpim; main () { for(n=1;n<=5;n++){ carpim=1; for(k=n;k<=7;k++) { carpim=carpim *pow(k,2); } toplam=toplam+n+carpim; printf(“sonuc=%d”,toplam); getch(); }

15 char ad[ ] = “mehmet” ; char isim[5] [10] ; Stringler:
C dilinde ayrıca bir string tipi tanımlanmadığından, string ifadeler ancak char tipindeki diziler ile tanımlanabilir. Stringleri, sayısal dizelerden ayıran en önemli özellik stringin sonuna yerleştirilen NULL ( ASCII kodu 0 olan karakter ) karakteridir. char ad[10]; Tek boyutlu string ad null ad[0] ad[9] char ad[10] = “mehmet” ; char ad[ ] = “mehmet” ; char isim[5] [10] ;

16 #include <stdio.h>
#include <string.h> #include <conio.h> main() { char ad[100],xx[]="ali",cevap; printf("Ad ve cevap değerlerini giriniz E/H?\n"); scanf("%s %c",ad,&cevap); printf("\n%s\n%s\n%c\n%c",ad,xx,cevap,ad[2]); getch(); }

17 #include <stdio.h>
#include <conio.h> main(){ char ad[5][10]; int i; printf("isim listesini giriniz:\n"); for(i=0;i<5;i++) { printf("isim[%d]:\n",i);scanf("%s",ad[i]); } printf("isim listesini gormek icin bir tusa basiniz\n"); getch(); for(i=0;i<5;i++)printf("isim[%d]:%s\n",i,ad[i]); getch();}

18 Stringlerle İlgili Bazı Hazır Kütüphane Fonksiyonları
Aşağıda <stdio.h> dosyasında tanımlanan string işlemleriyle ilgili çeşitli komutlar verilmiştir. Karakter dizesinin Okunup-Yazılması Bazen tek bir karakter veya tek bir kelime değil de Enter tuşuna basılıncaya kadar ya da satır sonu işaretini buluncaya kadar tüm yazılanların okunması gerekebilir . Bu nedenle şu fonksiyonları kullanmak yerinde olacaktır . char ad[30]; gets(ad); scanf("%s", a);//Bir karakter dizesini klavyeden okur puts(ad); printf("%s", a);//Bir karakter dizesini ekrana yazar strcmp: İki stringin ascii kodlarını (ilk karakterden başlayarak) karşılaştırır ve karşılaştırmanın sonucunu 0,pozitif yada negatif bir sayı olarak döndürür. strcmp(s1,s2); yada x=strcmp(s1,s2); s1=s2 ise x=0 s1>s2 ise x>0 s1<s2 ise x<0

19 strcpy: Bir stringi diğer bir stringe kopyalar.
strcpy(s1,s2); s2’yi s1’e kopyalar strcpy(s1,”fırat”); s1=fırat olur. strncpy: Bir stringin başlangıcından itibaren n tane elemanını diğer bir stringe kopyalar. strncpy(s1,s2,n); s2’den n tane elemanı s1’e kopyalar. strcat: Bir stringi başka bir stringin sonuna ekler. strcat(s1,s2); s2’yi s1’in sonuna ekler strncat: Bir stringin n tane elemanını diğerinin sonuna ekler. strncat(s1,s2,n); strlen: Bir stringin eleman sayısını verir. x=strlen(s1); strlwr: stringdeki harfleri küçük harfe çevirir.’A’-‘Z’ dışındaki karakterler için bir değişiklik söz konusu değildir. strlwr(s); strupr: string içindeki harfleri büyük harfe çevirir.’a’-‘z’ dışındaki karakterler için bir değişiklik söz konusu değildir. strupr(s);

20 Örnek: Klavyeden girilen bir karakter dizesinin tersi bulunarak ekrana yazan program
#include <stdio.h> #include <string.h> main() { char ifade[100]; int k,uzunluk; puts("İfadenizi Giriniz\n"); gets(ifade); uzunluk=strlen(ifade); for(k=uzunluk-1;k>=0;k--) putchar(ifade[k]); getch(); } putchar('\n');getch();

21 #include <stdio.h>
Örnek #include <stdio.h> #include <string.h> #include <math.h> char s1[]="firat",s2[]="TEKNIK",s[20]; int i,a; main(){ a=strcmp(s1,s2);printf("%d\n",(a)); strncpy(s,s1,3);puts(s); strcpy(s,s2);puts(s); strcat(s,s1);puts(s); strupr(s);puts(s); strlwr(s);puts(s); for (i=0;i<strlen(s1);i++) s1[i]=s1[i]-32;puts(s1); for (i=0;i<strlen(s2);i++) s2[i]=s2[i]+32;puts(s2); } ASCII kodlar: A B C … … a b c……


"tanımları yapabilmeniz gerekmektedir ." indir ppt

Benzer bir sunumlar


Google Reklamları