Temperatury Zadanie 4 matura 2009
Kod był wyświetlany 1471 razy.
    /*
  Name: Temperatury
  Copyright: GPL GNU
  Author:  Aleksander Koćwin
  Date: 16-06-10 07:47
  Description: Zadanie 4 matura 2009
*/
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    int i=0;
    float tabt[228][13];
    ifstream odczyt("temp2.txt"); //wczytywanie
    ofstream zapis("zad_4.txt");
    while(!odczyt.eof()) 
    {odczyt>>tabt[i][0];
    odczyt>>tabt[i][1];
    odczyt>>tabt[i][2];
    odczyt>>tabt[i][3];
    odczyt>>tabt[i][4];
    odczyt>>tabt[i][5];
    odczyt>>tabt[i][6];
    odczyt>>tabt[i][7];
    odczyt>>tabt[i][8];
    odczyt>>tabt[i][9];
    odczyt>>tabt[i][10];
    odczyt>>tabt[i][11];
    odczyt>>tabt[i][12];
    i++;}
    odczyt.close();
    
    //pierwszy i drugi podpunkt
    float tabsr[228];
    int j=0;
    for(i=0;i<228;i++) //sumowanie w tablicy srednich, wszystkich mieciecy roku
    {tabsr[i]=0;
    for(j=1;j<13;j++)
    tabsr[i]+=tabt[i][j];}
    
    float max=0,min=999999;
    for(i=0;i<228;i++)
    {tabsr[i]=tabsr[i]/12;  //jednoczesne skracanie liczb do 2 miejsc po przecinku
    tabsr[i]=((float)((int)(tabsr[i]*100+0.5)))/100; //... i wyznaczanie min i max 
    if(tabsr[i]>max)
    max=tabsr[i];
    else
    if(tabsr[i]<min)
    min=tabsr[i];}
    
    zapis<<"a) "<<min<<"\n";
    zapis<<"b) "<<max<<"\n";
    
    //trzeci podpunkt
    
    float maxy[12],mini[12]; //tworzenie tablic
    for(i=0;i<12;i++)
    {maxy[i]=0;
    mini[i]=9999999;
    for(j=0;j<228;j++) //wyznaczanie najwiekszej i najmniejszej sredniej kazdego mies.
    {if(tabt[j][i+1]>maxy[i])
    maxy[i]=tabt[j][i+1];
    else
    if(tabt[j][i+1]<mini[i])
    mini[i]=tabt[j][i+1];}}
    
    zapis<<"c) \n";
    for(i=0;i<12;i++)
    zapis<<"max. śr. temp. miesiąca "<<i+1<<" to: "<<maxy[i]<<", a min to: "<<mini[i]<<"\n";
    
    //czwarty podpunkt
    
    float tabs[228];
    for(i=0;i<228;i++) //przepisywanie srednich sierpnia
    tabs[i]=tabt[i][8]; 
    int l[228]; //tablica na długości
    int n=0; //zmienna na "numery" ciągów
    l[0]=1;
    int pocz[228]; //tablica na początki
    int kon[228]; // i na końce
    
    for(i=0;i<227;i++)
    {
    if(tabs[i]>tabs[i+1]) //jezeli dwie srednie tworza juz ciąg
    {l[n]++; //ciag o numerze n jest zwiększany
    if(l[n]==2) //jezli jego długosc to jeszcze dwa, to zapisywany jest początek
    {pocz[n]=tabt[i][0];}
    kon[n]=tabt[i+1][0];} //koniec i tak zapisywany jest z nastepnej sredniej
    else
    {kon[n]=tabt[i][0]; //jezeli nie tworzą, to koniec jest zapisywany
    n++;  //"numer" się zwiększa
    l[n]=1;} //dlugosc ciagu o numerze n jest "zerowana"
    }
    max=0; //ustalanie maxymalnego ciagu
    for(i=0;i<228;i++)
    if(l[i]>max)
    {max=l[i];
    n=i;}
    zapis<<"d) długosc: "<<max<<", początek w roku "<<pocz[n]<<" a koniec w "<<kon[n];
    
    zapis.close(); 
    cin.ignore();
    getchar();
    return 0;
}
    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT