Przekazywanie parametrów, struktura programu
Pomoc: Przekazywanie parametrów za pomocą wskaźników - uwaga na tablice
Przykład:
#include <iostream.h>
#include <math.h>
*include <conio.h>
void wprowadz(int *a, int *n)
{
cout<<"n="; cin>>*n;
for (int i=1; i<=*n; i++)
{
cout <<"a["<<i<<"]="; cin >>a[i];
}
}
//************************************************
void wariancja(int *a, int *n, float *war)
{
float sr=0;
for (int i=1; i<=*n; i++)
sr+=a[i];
sr/=*n;
*war=0;
for (int i=1; i<=*n; i++)
*war=*war+(a[i]-sr)*(a[i]-sr);
*war=sqrt(*war/(*n));
}
//************************************************
main()
{ int n,a[10];
float war;
wprowadz(a,&n);
wariancja(a,&n,&war);
cout <<"wariancja= "<<war;
getchar();
}
Problem: jaka jest budowa programu w C/C++
Można i tak!!!!
#include <iostream.h>
#include <math.h>
#include <conio.h>
int a[10], n; float war;
void wprowadz(); //Zapowiedź funkcjiprototyp funkcjideklaracja funcji
void wariancja();
main()
{
wprowadz();
wariancja();
cout <<"wariancja= "<<war;
getchar();
}
void wprowadz()
{
cout<<"n="; cin>>n;
for (int i=1; i<=n; i++)
{
cout <<"a["<<i<<"]="; cin >>a[i];
}
}
//************************************************
void wariancja()
{
float sr=0;
for (int i=1; i<=n; i++)
sr+=a[i];
sr/=n;
war=0;
for (int i=1; i<=n; i++)
war=war+(a[i]-sr)*(a[i]-sr);
war=sqrt(war/n);
}
Problem: jaka jest teraz struktura programu.
Zadanie 0. Zmodyfikuj program tak, by zawierał wywołanie przez wskaźniki a nie przez zmienne globalne oraz by zawierał także zapowiedź i wywołanie funkcji średnia.
Uwaga: Pokazane metody (trzy ostatnie zajęcia) można dowolnie łaczyć.
Zadanie 1. Dana jest tablica z elementami elementami strukturze: firma, adres, zysk. Napisz program, który:
Wprowadzi dane,
Wypisze firmy o maksymalnym zysku,
Wypisze firmy z Siedlec.
Posortuje nierosnąco firmy według zysku.
Uwaga:
Porównywanie ciągów: funkcja strcmp z biblioteki string.h
Przykład
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
//#include <string.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
char a[10];
char b[10];
cin>>a;
cin>>b;
int c=strcmp(a,b;
//c== gdy ciągi są równe, !=0 gdy jest różnica
cout<<c;
getch();
return 0;
}
//---------------------------------------------------------------------------
Zadanie 2.Dany jest wektor n-elementowy. Napisz program obliczający normę:
Maksimum (maksymalny element),
Normę „odległosciowa” (pierwiastek pierwiastek sumy kwadratów.
Zadanie 3. Dana jest funkcja f(x)=2x3-3. Korzystając z metody bisekcji napisz program znajdujący miejsce zerowe. Metoda bisekcji: Internet, tablica. Jak to zadanie rozwiązać, gdy mamy kilka określonych funkcji (menu). Jak to zadanie rozwiązać dla dowolnej funkcji (???).
Zadanie 4.
Stablicuj funkcję f(x)=2x+3 dusoponując:
x0, xk i n,
x0, deltax i n.