eMatematikas Prisijunk Forumas Užduotys Testai Pradžia

Programa su c kalba. Darbas su failais. Omo dėsnis.


Vienas svarbiausių elektrotechnikos dėsnių yra Omo dėsnis. Jis teigia, kad elektros srovės stipris I grandinės dalyje yra tiesiog proporcingas įtampai U grandinės dalies galuose ir atvirkščiai proporcingas varžai R:
I=U/R
Pirmoje pradinių duomenų failo eilutėje įrašytas skaičius n, rodantis, kiek bandymų buvo atlikta. Tolesnėse n eilučių įrašytos I, U ir R reikšmės, atskirtos tarpais. Du dydžiai yra žinomi, vienas – nežinomas. Nežinomas dydis faile žymimas 0. Parenkite programą, kuri apskaičiuotų ir išspausdintų lentele visų dydžių reikšmes vienetų tikslumu.


Pradiniai duomenys
3
5 5 0
0 5 5
5 0 5
Rezultatai
I U R
5 5 1
1 5 5
5 25 5

Na ir?..

nelabai suprantu kaip, tai parasyti.

Ka cia reiketu is pradziu taikyti, ar for cikla ar ka panasaus?

Nuskaitai pirma skaičių ir tada suki for ciklą tiek kartų kokį skaičių nuskaitei. Kiekvienoje iteracijoje nuskaitai 3 skaičius, patikrini kuris iš jų lygus 0 ir tada apskaičiuoji jo tikrąją reikšmę. Galiausiai visus skaičius įrašai į failą ir tada pradedi kitą iteraciją.

Tai kiekviena eilute reikia atskirai? O koks kodas atrodytu antrai eilutei nuskaityti?

fscanf(file, "%f %f %f", &x, &y, &z);
Kur x, y, z yra geriau užvadinti float tipo kintamieji.

Kai nuskaiciau pirma eilute, kokie eitu sekantys veiksmai?

Negi pats nieko nesugalvoji? Užduotis nėra kažkokia sudėtinga, ypač kai esi prieš tai programavimas (nemanau, kad C pirmoji tavo kalba). Geriau rašyk kokios konkrečiai pas tave problemos, kas nesigauna, geriausia su savo parašytų kodu. Galiu padėti, bet neketinu diktuoti tau sprendimo.

#include <stdio.h>
#include <string.h>

int main()
{
int x, y, z;
FILE *failas = fopen("C:\\Users\\ACER\\Desktop\\Programos\\5PrgrC\\omo.txt" , "r");
fscanf(failas, "%i %i %i", &x, &y, &z);
printf("%i %i %i", x, y, z);
fclose(failas);
return 0;
}

gal dabar bandyti su if, jei z=0 tai z bus lugus x/y, a kaip?

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »