Programa su c kalba. Darbas su failais. Omo dėsnis.
wytautaz21 (+103)
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
valdas3 (+1276)
Na ir?..
wytautaz21 (+103)
nelabai suprantu kaip, tai parasyti.
wytautaz21 (+103)
Ka cia reiketu is pradziu taikyti, ar for cikla ar ka panasaus?
valdas3 (+1276)
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ą.
wytautaz21 (+103)
Tai kiekviena eilute reikia atskirai? O koks kodas atrodytu antrai eilutei nuskaityti?
valdas3 (+1276)
fscanf(file, "%f %f %f", &x, &y, &z); Kur x, y, z yra geriau užvadinti float tipo kintamieji.
wytautaz21 (+103)
Kai nuskaiciau pirma eilute, kokie eitu sekantys veiksmai?
valdas3 (+1276)
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.
wytautaz21 (+103)
#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?