Drugie zadanie to samo co w tym .doc co ktoś przesłał.
Pierwsze podobne, tylko funkcja sześcianu.
Trzecie to były podane noty jakie otrzymał skoczek narciarski po skoku (17.5,18,17.5,18.5,18) i trzeba było napisać funkcję która wywali dwie skrajne noty czyli najmniejszą i największą a pozostałe wstawi do nowej tabeli. Później te tabelę trzeba było przekazać do nowej fukncji która liczyła sumę tych not i potem to wszystko wyświetlić.
W funkcji drugiej trzeba było użyć notacji wskaźnikowej podczas poruszania się po tabeli, a w pierwszej funkcji trzeba było pobrać tabele jako wskaźniki.
11111111szescian
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int szescian(int a)
{
return a*a*a;
}
double szescian(double b)
{
return (b*b*b);
}
float szescian (float c)
{
return c*c*c;
}
main()
{int a,w1;
double b,w2;
float c,w3;
cout<<"Podaj a:";
cin>>a;
cout<<"\nPodaj b:";
cin>>b;
cout<<"\nPodaj c:";
cin>>c;
w1=szescian(a);
cout<<w1<<endl;
{w2=szescian(b);
cout<<w2<<endl;
}
{w3=szescian(c);
cout<<w3<<endl;
}
system("PAUSE");
return 0;
}
333333333skoczek
#include <iostream>
using namespace std;
void wywalanie (float t[], int rozmiar)
{
float maks=0, min=21;
for (int i=0; i<rozmiar; i++)
{
if (t[i]>maks) maks=t[i];
if (t[i]<min) min=t[i];
}
for (int i=0; i<rozmiar; i++)
{
if (t[i]==maks)
{
t[i]=0;
i=5;
}
}
for (int i=0; i<rozmiar; i++)
{
if (t[i]==min)
{
t[i]=0;
i=5;
}
}
}
int suma (float t[], int rozmiar)
{
float suma=0;
for (int i=0; i<rozmiar; i++)
{
suma=suma+t[i];
}
return suma;
}
main()
{
float t1 [5], t2[3];
float sum = 0;
for (int i=0; i<5; i++)
{
cout<<"Podaj note "<<i+1<<endl;
cin>>t1[i];
}
cout<<"Noty sedziow:\n";
for (int l=0; l<5;l++)
{
cout<<"Nota "<<l+1<<":\t"<<t1[l]<<endl;
}
cout<<endl<<endl<<endl;
wywalanie (t1,5);
int j=0;
for (int i=0; i<5; i++)
{
if (t1[i]!=0)
{
t2[j]=t1[i];
j++;
}
}
cout<<"Noty kiere sie ostaly:\n";
for (int l=0; l<3; l++)
{
cout<<"Nota "<<l+1<<":\t"<<t2[l]<<endl;
}
sum = suma(t2,3);
cout<<"Za styl zawodnik otrzymuje "<<sum<<" pkt.\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Doc
Tutaj niestety tylko 2 rozwiązania:)
zad 1 3 zmienne
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int modul(int m);
float modul(float m);
double modul(double m);
main ()
{
int wynik1,wynik2,wynik3;
int a=12, b=-12;
float c=12.1, d=-12.1;
double e=12.123, f=-12.123;
cout<<"modul z liczby "<<a<<" "<<"wynosi: "<<modul(a)<<endl;
cout<<"modul z liczby "<<b<<" "<<"wynosi: "<<modul(b)<<endl;
cout<<"modul z liczby "<<c<<" "<<"wynosi: "<<modul(c)<<endl;
cout<<"modul z liczby "<<d<<" "<<"wynosi: "<<modul(d)<<endl;
cout<<"modul z liczby "<<e<<" "<<"wynosi: "<<modul(e)<<endl;
cout<<"modul z liczby "<<f<<" "<<"wynosi: "<<modul(f)<<endl;
}
int modul(int m)
{
if (m>0)
{
m=m;
return m;
}
else
{
m=-m;
return m;
}
}
float modul(float m)
{
if (m>0)
{
m=m;
return m;
}
else
{
m=-m;
return m;
}
}
double modul(double m)
{
if (m>0)
{
m=m;
return m;
}
else
{
m=-m;
return m;
}
}
------------------------
zad 2
#include <iostream>
using namespace std;
void zmiana(float *a, float *b)
{
int c=0, d=0;
c=*a;
d=*b;
*a=d;
*b=c;
}
main()
{
float a,b;
cout<<"Podaj pierwsza zmianna: ";
cin>>a;
cout<<"Podaj druga zmianna: ";
cin>>b;
float *wsk_a;
float *wsk_b;
wsk_a=&a;
wsk_b=&b;
zmiana(wsk_a, wsk_b);
cout<<"Wartosc pierwszej zmiennej: "<<a;
cout<<endl<<"Wartosc drugiej zmiennej: "<<b;
}
Alt2 dobre
#include<cstdlib>
#include<iostream>
using namespace std;
void zamiana(float *w1,float *w2);
int main(int argc, char *argv[])
{
float a,b,*wa,*wb;
wa=&a;
wb=&b;
cout<<"Podaj dwie liczby: ";
cin>>a>>b;
zamiana(wa,wb);
cout<<"Pierwsza liczba: "<<*wa<<endl;
cout<<"Druga liczba: "<<*wb<<endl;
system("PAUSE");
return 0;
}
void zamiana(float *w1,float *w2)
{
float tmp=*w1;
*w1=*w2;
*w2=tmp;
}
1 - podać w programie 3 liczby (int, float i double) i dla każdej z nich stworzyć funkcję, obliczającą jej wartość bezwzględną (ale NIE z gotowej funkcji); każda z funkcji powinna być z parametrem domyślnym=1, na koniec pokazać wyniki działania funkcji z parametrami domyślnymi i z podanymi wcześniej liczbami (funkcja miała je chyba otrzymać jako wskaźniki),
2 - napisać program zamieniający miejscami 2 liczby całkowite (zmiana ma się odbywać w funkcji, ze wskaźnikami do zmienianych liczb jako parametrami),
3 - zdefiniować 8-elementową tablicę int z dowolnymi wartościami początkowymi, potem napisać funkcję otrzymującą tablicę przez wskaźnik i przetwarzającą tę tabelę w taki sposób, że w miejsce liczb >0 wpisuje 1, a dla liczb <=0 wpisuje 0 (należy użyć notacji wskaźnikowej do poruszania się po tablicy); potem stworzyć kolejną funkcję, otrzymującą tę zmodyfikowaną tablicę (jako tablicę) i przetwarzającą otrzymaną w ten sposób liczbę w kodzie dwójkowym na dziesiętny.
Na koniec wypisać efekty działania programu na zasadzie:
zawartość tablicy= 1 2 0 4 5 -1 9 -6
dwójkowo= 1 1 0 1 1 0 1 0
dziesiętnie= 218
1
#include<iostream>
#include<cmath>
using namespace std;
int modul_ing(int a=1);
float modul_flo(float b=1);
double modul_dou(double c=1);
int modul_ing(int a)
{
if(a>=0) cout<<"modul= "<<a<<endl;
else
cout<<"modul= "<<a*(-1)<<endl;
}
float modul_flo(float b)
{
if(b>=0) cout<<"modul= "<<b<<endl;
else
cout<<"modul= "<<b*(-1)<<endl;
}
double modul_dou(double c)
{
if(c>=0) cout<<"modul= "<<c<<endl;
else
cout<<"modul= "<<c*(-1)<<endl;
}
main()
{
int a;
float b;
double c;
cout<<"podaj int"<<endl;
cin>>a;
cout<<"podaj float"<<endl;
cin>>b;
cout<<"podaj double"<<endl;
cin>>c;
cout<<endl;
cout<<"z argumentami domyslnymi"<<endl;
modul_ing();
modul_flo();
modul_dou();
cout<<endl;
cout<<"z podanymi"<<endl;
modul_ing(a);
modul_flo(b);
modul_dou(c);
cout<<endl;
system("pause");
return 0;
}
zamień początek tak:
int modul(int a=1);
float modul(float b=1);
double modul(double c=1);
I wszystkie nazwy typu modul_int, modul_flo, modul_dou na modul i powinno być ok czyli nie kompilowac a wywalać błąd w konsoli
nie wiem
#include <iostream>
#include <cmath>
using namespace std;
void zmiana(double *tab1, int rozmiar1, double *tab2, int rozmiar2)
{
for(int i=0, j=0; i<rozmiar1, j<rozmiar2; i++, j++) //wstawienie 1 i 0 zamiast liczb
{
if(*(tab1 + i) >= 0)
*(tab2 +j) = 1;
if(*(tab1 + i) <= 0)
*(tab2 +j) = 0;
}
}
double obliczanie(double *tab, int rozmiar)// na podsatwie 1 i 0 obliczamy liczbe dzisietna
{
double suma = 0;
for(int i=0; i<rozmiar; i++)
{
suma += tab[rozmiar-1-i]*(pow(double(2),double(i)));
}
return suma;
}
int main()
{
double tab1[8] = {1,9,7,11,-7,-3,9,0};
double tab2[8];
zmiana(tab1,8,tab2,8);
cout << endl << "Tablica z liczbami: " << endl;
for(int i=0; i<8; i++)
{
cout << "\t" << tab1[i];
}
cout << endl << endl << "Tablica tworzaca liczbe przedstawiona binarnie: " << endl;
for(int i=0; i<8; i++)
{
cout << "\t" << tab2[i];
}
cout << endl << endl << "Liczba dziesietna: " << obliczanie(tab2,8) << endl;
cout << endl;
system("PAUSE"); //opcjonalne w Code::Blocks nie jest potrzebne
return 0;
}
6