Cześć jako, że to mój pierwszy post to najpierw się przedstawię. Jestem Mikołaj, skończyłem technikum informatyczne jakieś 2 lata temu i oczywiście nie mogę znaleźć pracy nawet w serwisie, a na studia nie ma czasu i pieniędzy(bo praca...) więc stwierdziłem, że zdobędę umiejętności na własną rękę, dlatego przypomniałem sobie z jakich kursów próbowali nam coś wpoić w technikum, wziąłem sie za siebie i teraz w wolnych chwilach staram się coś z tych kursów wyciągnąć, bo wiadomo, że uwaga na lekcji przepełnionej uczniami klasy TI skupiała się raczej na graniu w CS-a albo przeglądaniu 4chana bez celu.
Uczę się właśnie Cpp z kursu Mirosława Zelenta, jestem przy lekcji o wskaźnikach. Ogólnie w oryginalnym kodzie z odcinka program liczył w jakim czasie komputer odnajdzie w RAMie komórki przy użyciu wskaźników . Chciałem pójść o krok dalej i napisać do tego ćwiczenia coś od siebie(praktyka czyni mistrza).
Mój dodatkowy kod, który umieściłem w funkcji "okwt" miał poprosić użytkownika o dodanie danych do zmiennej "ile" oraz "pierwsza" i na podstawie tych danych wyznaczyć ilość komórek jakie tablica o nazwie "tablica" ma zarezerwować w RAMie, oraz w każdej z tych komórek wpisać wartości o jeden większe niż w poprzedniej komórce, a w pierwszej powinna znajdować się wartość ze zmiennej "pierwsza".
Tutaj kod oryginalny z kursu:
#include <iostream>
using namespace std;
float srednia(float *tab, int ile)
{
float suma=0;
for(int i=0; i<=ile; i++)
{
suma+=*tab;
*tab = 999;
tab++;
}
return suma/ile;
}
int main()
{
int ile_adresow;
float tablica[ile_adresow];
float pierwsza;
cout<<"Podaj liczbe adresow: "; cin>>ile_adresow; cout<<endl;
cout<<"Podaj pierwsza liczbe: "; cin>> pierwsza; cout<<endl;
cout<<"Srednia wynosi: "<<srednia(tablica,ile_adresow);
}
A tutaj mój kod:
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <time.h>
#include <stdio.h>
#include <cstdlib>
#include <conio.h>
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
float okwt(float *tabli, int ia, float p);
float srednia(float *tab, int ile);
int main()
{
int ile;
float tablica[ile=0];
float pierwsza;
cout<<"Podaj liczbe adresow: ";
cin>>ile; cout<<endl;
cout<<"Podaj pierwsza liczbe: ";
cin>> pierwsza; cout<<endl;
okwt(tablica,ile,pierwsza);
cout<<endl;
cout<<"Srednia obliczen wynosi: "<<srednia(tablica,ile);
return 0;
}
float okwt(float *tabli, int ia, float p)
{
for(int i=0; i<=ia; i++)
{
tabli[i]=p+1;
i++;
cout<<i<<". Wpis w tablicy to: "<<tabli[i]<<endl;
}
return 0;
}
float srednia(float *tab, int ile)
{
float suma=0;
for(int i=0; i<=ile; i++)
{
suma+=*tab;
*tab = 999;
tab++;
}
return suma/ile;
}
Oraz wynik mojego programu:
Do zmiennej "ile" powędrowało 12, a do zmiennej "pierwsza" powędrowało 1, więc według tego co chce osiągnąć powinno wyświetlić liczby od 1 do 12... no i się wykrzaczył na końcu, nie robi tego za każdym razem na szczęście.
Bądźcie proszę wyrozumiali bo dopiero zaczynam przygodę z programowaniem, jedyne co wcześniej robiłem to kodowanie w lua jakiś małych skryptów do modyfikacji multiplayer do Gothica II.