Diskuze: textový soubor
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 12 zpráv z 12.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Prosím využij tlačítka kód. Jsem hodný a luštím to po tobě. Pokud
umíš načítat / ukládat soubory, měl by jsi umět vypočítat průměr.
Předpokládám že tento kód jsi jenom hloupě zkopíroval. Takže si přečti
několik článků zde
. Pokud
ti křivdím, tak poradím asi takto. Udělej si třídu Student, kde budeš
mít List známek. Každý student bude mít metodu VratPrumer(). Průměr by
jsi měl vědět jak se počítá
Suma(x) / počet X kde X jsou známky. Textový soubor je uložen v
CSV což je paráda. Tj načteš řádek, rozplituješ a víš že první index
je jméno, zbylé indexy známky. Zkus si nyní pročíst několik článků a
potom ti poradím konkrétněji 
dělám do školy ten stejný program. Ale nějak jsem se zasekl. Vytvořil jsem jsem si zatím jen načtení a uložení souboru, pak jsem si vytvořil novou třídu a snažím se pomocí pole udělat ten List známek. Ale neúspěšně. Mohl bys prosím trochu podrobněji vysvětlit jak to v té třídě udělat. Díky moc.
Ahoj, využívej tlačítko odpovědět, aby přišlo upozornění
. Hádám že se třídami, metodami
a vůbec OOP nemáš zkušenosti. Třídu nazveš nějak vhodně, například
Student. Každý Student bude mít jméno a list jeho známek. Dále bude
student obsahovat metodu VratPrumer(). V metodě proejdeš cyklem známky a
spočítáš průměr (matematika zš).
Každopádně, oba nemáte ponětí co jsou třídy, metody apod , mám pravdu ? Když ti to tady napíšu, bude to fungovat, ale tobě to nic nedá. Ve vlatním zájmu si přečti zdejší články.
class Student
{
public string Jmeno { get; private set; }
public List<int> Znamky { get; private set; }
public Student(string jmeno, List<int> znamky)
{
this.Jmeno = jmeno;
this.Znamky = znamky;
}
public double VratPrumer()
{
int soucet = 0;
foreach (int p in Znamky)
soucet += p;
return (double)soucet/Znamky.Count;
}
public void PridatZnamku(int znamka)
{
Znamky.Add(znamka);
}
}
nemam po ruce IDE pro C# ale tak zkusím něco vymáčknout z hlavy.
// načtení
public class LoadData{
private List<int> Znamky = new List<int>();
public LoadData(String path){
using(System.IO.StreamReader sr = new System.IO.StreamReader(path)){
while ((string s = sr.ReadLine()) != null){
Znamky.Add(Int.Parse(s));
}
}
}
public List<int> getZnamky(){ return Znamky; }
teď třída kde se počítá průměr
public class Prumery(){
private double prumer = 0;
public Prumery(List<int> list){
int pocet = 0, soucet = 0;
foreach(int i in list){
soucet += i;
pocet++;
}
prumer = soucet / pocet;
}
public double getPrumer() { return prumer;}
}
no a potom už jen nějaká hlavní třída
public class program{
public static void main(String args[]){
LoadData load = new LoadData("cesta/k/souboru.txt");
Prumery prumer = new Prumery(load.getZnamky());
Console.WriteLine("Vas prumer je : " + prumer.getPrumer());
}
Pokud by si průměr chtěl zapsat do souboru tak
public class SaveData{
public SaveData(string path, double prumer){
using(System.IO.StreamWriter sw = new System.IO.StreamWriter(path)){
sw.WriteLine(prumer.ToString());
sw.Flush();
}
}
a do main tridy pridame jen řádek
new LoadData("cesta", prumer.getPrumer());
Takhle by to mělo fungovat na známky jednoho člověka ale přispůsobit to pro více lidí nebude problém. Je to vytažené z patra ale myslím, že to bude fungovat.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Znamky
{
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>();
using (StreamReader sr = new StreamReader("Znamky.txt"))
{
string s;
while ((s = sr.ReadLine()) != null)
{
string[] hodnoty = s.Split(';');
string name = hodnoty[0];
float cj = VypoctiPrumer(hodnoty[1]);
float aj = VypoctiPrumer(hodnoty[2]);
float ma = VypoctiPrumer(hodnoty[3]);
float it = VypoctiPrumer(hodnoty[4]);
students.Add(new Student(name, cj, aj, ma, it));
}
}
using (StreamWriter sw = new StreamWriter("prumer.txt"))
{
foreach (Student s in students)
{
}
}
}
public static float VypoctiPrumer(string znamky)
{
float soucetZnamek = 0;
string[] cisla = znamky.Split(',');
int pocetZnamek = 0;
for (int i = 0; i < cisla.Length; i++)
{
soucetZnamek += float.Parse(cisla[i]);
pocetZnamek++;
}
return soucetZnamek / pocetZnamek;
}
}
}
Zdravím tak už sem to nějak dodělal ale u
soucetZnamek += float.Parse(cisla[i]);
mi to hází Input string was not in a correct format. Nevím co stím.
Soubor ze kterého čte tak je tam uloženo
Student;ČJ;AJ;MAT;IT
Jan N;1,1,1,2,3,1;3,2,1,3,4;2,2,2,3,1,2;1,2,2,1,1,1
Karel V;3,2,1,3,4;1,1,1,2,3,1;1,2,2,1,1,1;2,2,2,3,1,2
Prosím o radu. Díky za odpověď
Pokud máš na prvním řádku v tom souboru toto: "Student;ČJ;AJ;MAT;IT"
tak to nemůže fungovat, jelikož jsou tam očekávána čísla 
Navíc tam máš těch hodnot nějak hodně, nepřijde mi, že jsou 4.
Ona tam není chyba, ono tam něco chybí. A navíc nechápu, proč máš na řádku 10 známek a pak načteš jen 4.
Zobrazeno 12 zpráv z 12.