Rajzoljunk a konzol ablakba Windowson
Írj függvényt, amely két komplex szám valós és képzetes részét kapja két-két, double típusú változóban, kiszámítja és (cím szerinti paraméterként) visszaadja a két komplex szám összegét! Egészítsd ki teljes programmá, amelyben kipróbálod a függvényt!
Definiálj struktúrát kompex számok tárolására! Írj függvényt, amely összeszoroz két komplex számot! Mutasd be a függvény használatát!
Írj egy-egy függvényt, amely egy valós számokból álló tömbben megkeresi a legkisebb értéket, és
a) visszaadja azt.
b) paraméterként visszaadja azt.
c) visszaadja az indexét.
d) visszaadja a címét.
Írj függvényt, amely lemásol egy egész számokból álló tömböt!
Írj függvényt, amely egy egész számokból álló tömböt kap, és egy éppen megfelelő méretű dinamikus tömbben visszaadja a bemenő tömbben szereplő páros értékeket! Teljes programban mutasd be a függvény használatát! Tipp: az eredmény tömb méretét is vissza kell adni.
Definiálj struktúrát valós 2D vektor tárolására! Írj függvényt, amely 2D vektorok tömbjét kapja, és egy éppen megfelelő méretű dinamikus tömbben adja vissza a 2-nél hosszabb vektorokat! Teljes programban mutasd be a függvény használatát!
| 1. feladat |
#include <stdio.h>
void komplex_add(double re1, double im1, double re2, double im2, double *pre, double *pim){
*pre = re1 + re2;
*pim = im1 + im2;
}
int main(){
double re1=3.14, im1=6.92, re2, im2;
komplex_add(re1, im1, 10.0, -2.0, &re2, &im2);
printf("%g%+gi\n", re2, im2);
return 0;
}
|
| 2. feladat |
#include <stdio.h>
typedef struct { double re,im; } Komplex;
Komplex szorzo(Komplex a, Komplex b){
Komplex eredmeny;
eredmeny.re = a.re*b.re - a.im*b.im;
eredmeny.im = a.re*b.im + b.re*a.im;
return eredmeny;
}
int main(){
Komplex x={3,-2}, y={5,7}, z;
z = szorzo(x,y);
printf("%g%+gi\n",z.re,z.im);
return 0;
}
|
| 3. feladat |
#include <stdio.h>
double keres_a(double t[], int meret){
int i,min;
min=0;
for(i=1; i<meret; i++){
if(t[i]<t[min])
min = i;
}
return t[min];
}
void keres_b(double t[], int meret, double *ret){
int i,min;
min=0;
for(i=1; i<meret; i++){
if(t[i]<t[min])
min = i;
}
*ret = t[min];
}
int keres_c(double t[], int meret){
int i,min;
min=0;
for(i=1; i<meret; i++){
if(t[i]<t[min])
min = i;
}
return min;
}
double* keres_d(double t[], int meret){
int i,min;
min=0;
for(i=1; i<meret; i++){
if(t[i]<t[min])
min = i;
}
return &t[min]; // Tömbelem címe.
}
int main(){
double tomb[10] = { 1, 2, 3, -5, 6, 4, 3.14, -6.1, 125e8, 999.999 };
double eredmeny,*pmin;
int index;
printf("%g\n", keres_a(tomb,10));
keres_b(tomb,10,&eredmeny);
printf("%g\n", eredmeny);
printf("%g\n", tomb[keres_c(tomb,10)]);
printf("%g\n", *keres_d(tomb,10));
return 0;
}
|
| 4. feladat |
void masol(int cel[], int forras[], int meret){
int i;
for( i=0; i<meret; i++ )
cel[i] = forras[i];
}
int main(){
int a[6]={1, 2, 3, 4, 5, 6}, b[6]; // A céltömb lehetne nagyobb is, mint a forrás
masol(b,a,6); // tömböt másolni b=a; módon nem lehet, az elemeket egyenként kell
return 0;
}
|
| 5. feladat |
#include <stdio.h>
#include <stdlib.h>
int * parosak(const int be[], size_t n, size_t * ki_n) {
size_t db = 0;
for (size_t i = 0; i < n; i++)
if (be[i] % 2 == 0)
db++;
int * ki = (int*)malloc(db*sizeof(int));
*ki_n = db; // Méret visszaadása
size_t j = 0;
for (size_t i = 0; i < n; i++)
if (be[i] % 2 == 0) {
ki[j] = be[i]; // Különböző indexek!
j++;
}
return ki;
}
int main() {
int t[10] = {6, -5, -4, 77, 1000, 0, -1111, -888, 911, 366 };
size_t n;
int * ki = parosak(t, 10, &n);
for (size_t i = 0; i < n; i++)
printf("%d\n", ki[i]);
free(ki);
return 0;
}
|
| 6. feladat |
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct {
double x, y;
} Vektor;
double Vektor_hossz(const Vektor v) {
return sqrt(v.x*v.x + v.y*v.y);
}
Vektor * hosszuak(const Vektor be[], size_t n, size_t * ki_n) {
size_t db = 0;
for (size_t i = 0; i < n; i++)
if (Vektor_hossz(be[i]) > 2)
db++;
Vektor * ki = (Vektor*)malloc(db*sizeof(Vektor));
*ki_n = db; // Méret visszaadása
size_t j = 0;
for (size_t i = 0; i < n; i++)
if (Vektor_hossz(be[i]) > 2){
ki[j] = be[i]; // Különböző indexek!
j++;
}
return ki;
}
int main() {
Vektor t[5] = { {3,2}, {-1,1}, {-1.5,1.5}, {0,0}, {5,1} };
size_t n;
Vektor * ki = hosszuak(t, 5, &n);
for (size_t i = 0; i < n; i++)
printf("(%g, %g)\n", ki[i].x, ki[i].y);
free(ki);
return 0;
}
|