#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

Benzer belgeler
#include <stdio.h> int main(void) { FILE * dosya; dosya = fopen("soru1.txt", "w"); fprintf(dosya, "Merhaba Dunya!"); fclose(dosya); return 0; }

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

PROGRAMLAMAYA GİRİŞ DERS 2

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

Fall Object-Oriented Programming Laboratory 02 - Structures

4.Hafta BİL Soruların Çözümleri

BİL1001 Bilgisayar Bilimlerine Giriş 1

C ile Uygulamalar 4 - Cevaplar

C++ Dersi: Nesne Tabanlı Programlama

Programlama Dilleri 1. Ders 5: Göstericiler

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Giriş. ENF102 Jeoloji

Hafta 13 Fonksiyonlar

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

Kocaeli Üniversitesi Bilgisayar Mühendisliği Programlama 2 Dersi Final Sınavı. A Grubu

#ifndef COMPLEX_H #define COMPLEX_H

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Ders 6: Karşılaştırma Deyimleri

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

Hafta 11 Çok Boyutlu Diziler

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Diziler (Arrays) Çok Boyutlu Diziler

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

Hazır Fonksiyonlar {\} /\ Suhap SAHIN Onur GÖK 1

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Dr. Fatih AY Tel: fatihay@fatihay.net

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Final Sınavı Soruları Güz, Süre: 90 Dakika

Fonksiyonlar (Altprogram)

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

C Programlama printf() Fonksiyonu

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Adım Adım C. Dr. Hidayet Takcı

C PROGRAMLAMA D İ L İ

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

D İ Z İ L E R A R R A Y S

Pros and Cons of Pointers. Pointers. Avantajlar. Dezavantajlar

2. Dereceden Denklemin Köklerini Bulan Program

Eln 1001 Bilgisayar Programlama I

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BİLG Dr. Mustafa T. Babagil 1

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

Giris {\} /\ Suhap SAHIN Onur GÖK

C++ Dersi: Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

ALGORİTMA VE PROGRAMLAMA I

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Başkent Üniversitesi MühendislikFakültesi BaharYarıyılı YerSıra No BİL 101 Bilgisayar Yazılımı-I Dersi Dönem Sonu MAZERET Sınavı

Matlab da Dizi ve Matrisler. Mustafa Coşar

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

BÖLÜM 9: POINTERLER (İŞARETÇİLER)

8. İŞARETCİLER (POINTERS)

C Programlama Dilininin Basit Yapıları

BÖLÜM 11: YAPISAL VERİ TİPLERİ

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Sınav tarihi : Süre : 60 dak.

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri (Enumarations)

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Eln 1002 Bilgisayar Programlama II

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

#ifndef VEKTOR_H #define VEKTOR_H. struct vektor_s { double x; double y; double z; }; typedef struct vektor_s vektor_t;

C PROGRAMLAMA D İ L İ

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Döngü blokunda tek bir deyim varsa {} yazılmayabilir.

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Programlama Dilleri 3

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

Döngü ve Koşul Deyimleri

İşaretciler - Pointer

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Telefon Rehberi Uygulaması

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

Özyineleme (Recursion)

Transkript:

Ege University Electrical and Electronics Engineering Introduction to Computer Programming Laboratory Lab 11 - Pointers 1) Pointer syntax. Declare a variable and a pointer with same data type. Assign variable s address to pointer. Use the pointer to receive input to the variable and output the variable s value. 1) Pointer yazım kuralları. Aynı data tipinde bir değişken ve bir pointer tanımlayın. Pointer a değişkekin adresini atayın. Pointer ı kullanarak değişkene değer girişi yapın, yine pointer kullanarak değişkenin değerini çıktı olarak gösterin. float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p); printf("sayinin'nin adresi:\t%p\n", &sayi); printf("p'nin degeri:\t\t%p\n", p); 2) Value swapping. Write a function that takes two variables and swaps their values. 2) Değer değiş tokuşu. Aldığı iki değişkein değerlerini değiş tokuş eden bir fonksiyon yazın. void floatswap(float*f1, float*f2) float temp; temp = *f1; *f1 = *f2; *f2 = temp; float sayi1, sayi2; printf("1.sayiyi girin:"); scanf("%f", &sayi1); printf("2.sayiyi girin:"); scanf("%f", &sayi2); printf("degistokustan once\n");

printf("1.sayi:%f\n", sayi1); printf("2.sayi:%f\n", sayi2); floatswap(&sayi1, &sayi2); printf("degistokustan sonra\n"); printf("1.sayi:%f\n", sayi1); printf("2.sayi:%f\n", sayi2); 3) Integer division. Write a function that divides an integer to another integer. Return both dividend and remainder. 3) Tamsayı bölmesi. Bir tamsayının diğer bir tamsayıya bölümünü hesaplayan bir fonksiyon yazın. Hem bölümü hem kalanı dönün. void tamsayibolmesi(int bolunen, int bolen, int*bolum, int*kalan) *bolum = bolunen / bolen; *kalan = bolunen % bolen; int sayi1, sayi2, sonuc1, sonuc2; printf("boluneni girin:"); scanf("%d", &sayi1); printf("boleni girin:"); scanf("%d", &sayi2); tamsayibolmesi(sayi1, sayi2, &sonuc1, &sonuc2); printf("bolum:%d\n", sonuc1); printf("kalan:%d\n", sonuc2); 4) Pointers and arrays. Declare a 10 element array and initialize elements using int rand(void) function from stdlib.h library. Display the array. Use pointer for all operations. 4) Pointer lar ve diziler. 10 elemanlı bir dizi tanımlayın ve stdlib.h kütüphanesinden int rand(void) fonksiyonunu kullanarak dizinin elemanlarına ilk değer verin. Diziyi gösterin. Tüm işlemler için pointer kullanın. #include <stdlib.h>

#include <time.h> #define ARRSIZE 10 int a, ary[arrsize]; srand(time(null)); for(a=0; a<arrsize; a++) *(ary+a) = rand(); for(a=0; a<arrsize; a++) printf("%d %d\n", a, *(ary+a)); 5) Multidimensional array. Receive a 3x3 multidimensional array as input. Find the largest value entered and display its indices. Output the multidimensional array. 5) Çok boyutlu dizi. Girdi olarak 3x3 boyutunda bir çok boyutlu dizi alınsın. Çok boyutlu dizideki en küçük elemanı bulun ve indislerini çıktı olarak gösterin. Çok boyutlu diziyi çıktı olarak gösterin. #define DZSATIR 3 #define DZSUTUN 3 int dz[dzsatir][dzsutun], satir, sutun, minsatir, minsutun; for(satir=0; satir<dzsatir; satir++) for(sutun=0; sutun<dzsutun; sutun++) printf("(%d x %d) indisli elemani girin:", satir+1, sutun+1); scanf("%d", &dz[satir][sutun]); for(satir=0; satir<dzsatir; satir++) for(sutun=0; sutun<dzsutun; sutun++) if(satir==0 && sutun == 0)

minsatir = satir; minsutun = sutun; else if(dz[satir][sutun] < dz[minsatir][minsutun]) minsatir = satir; minsutun = sutun; printf("en kucuk eleman %d x %d indisinde %d\n", minsatir, minsutun, dz[minsatir][minsutun]); 6) Pointers and strings. Receive a word as input. Reverse the word, capitalize its letters and save into another string. Display both first and last strings. 6) Pointer lar ve string ler. Bir kelimeyi girdi olarak alın. Kelimeyi ters çevirin, harflerini büyütün ve başka bir string e saklayın. İlk ve son string i çıktı olarak gösterin. #include <string.h> #include <ctype.h> #define STRSIZE 32 /*************************************** **************************************** bu fonksiyonu farkli bir yoldan implement etmek icin labda yapilan implementasyonu comment-out ettim. void fn(char*in, char*out) int inlen = strlen(in); for(inlen--; inlen >= 0; inlen--) *out = toupper(*(in+inlen)); out++; *out = '\0'; **************************************** ***************************************/

void fn(char*in, char*out) char*ters_in; ters_in = in + strlen(in) - 1; while(ters_in >= in) *out = toupper(*ters_in); out++; ters_in--; *out = '\0'; char instr[strsize], outstr[strsize]; printf("enter a string: "); scanf("%s", instr); fn(instr, outstr); printf("%s", outstr); 7) Roots of second order polynomial. Write a function that computes roots of a second order polynomial, ax 2 +bx+c=0, using values of a, b, c. Formulas: Hint: You may want to store real part and imaginary part of a root in different variables, even if value is equal to zero. 7) İkinci derece polinomun kökleri. ax 2 +bx+c=0 tipinde bir ikinci derece polinomun köklerini, a, b,c değerlerini kullanarak hesaplayan bir fonksiyon yazın. Formüller: İpucu: Bir kökün reel ve sanal kısımlarını farklı değişkenlerde saklamak gerekebilir; değeri sıfır olsa bile. #include <math.h> #define STRSIZE 32 void roots(double a, double b, double c, double*re1, double*im1, double*re2, double*im2) double delta = pow(b, 2) - 4*a*c; if(delta>=0) *re1 = -b/2/a + sqrt(delta)/2/a; *im1 = 0;

*re2 = -b/2/a - sqrt(delta)/2/a; *im2 = 0; else *re1 = -b/2/a; *im1 = sqrt(fabs(delta))/2/a; *re2 = -b/2/a; *im2 = -sqrt(fabs(delta))/a/a; double a, b, c, re_x1, im_x1, re_x2, im_x2; printf("a b c katsayilarini girin:\n"); scanf("%lf %lf %lf", &a, &b, &c); roots(a, b, c, &re_x1, &im_x1, &re_x2, &im_x2); printf("x1:\t(%lf) + j(%lf)\n", re_x1, im_x1); printf("x2:\t(%lf) + j(%lf)\n", re_x2, im_x2);