Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Problem s výpočtom Sin a vytvorenie poľa

C# .NET .NET (C# a Visual Basic) Problem s výpočtom Sin a vytvorenie poľa American English version English version

Aktivity (1)
Avatar
loobka
Člen
Avatar
loobka:7.1.2015 22:51

Tu je zdroj na výpočet Sin a vytvorenie poľa nevpiše mi nič. Prosímm kde je chyba?:
double [] x, y;
double h = 0.05;
int n = (int)(1.4 / h);
//double h = 0.1;
//int n = (int)(2 * 3.14 / h);
x = new double[n];
y = new double[n];
for (int i = 1; i < n; i++)
{
x[i]= x[i-1]+ h;
y[i]= Math.Sin(x[i]);

}

Console.Write­Line("Vypis pole x {0}", x, y);
Console.ReadLine();

 
Odpovědět 7.1.2015 22:51
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:7.1.2015 23:07
for (int i = 0; i < n; i++)
Console.WriteLine("[{0},{1}]", x[i], y[i]);

Nevím co přesně chceš, aby se ti to vypsalo. Ale pole nemá přepsanou metodu ToString, takže ti to vypíše jen v jakém je namespacu (předpokládám, že tohle je ta chyba, že to "nic" nevypíše). Navíc tam předáváš dva parametry a používáš jen jeden.

Editováno 7.1.2015 23:07
 
Nahoru Odpovědět 7.1.2015 23:07
Avatar
rwn
Člen
Avatar
Odpovídá na loobka
rwn:7.1.2015 23:11

Pole se takhle nevypisuje, je to kolekce hodnot. Vypsat to můžeš buď takto:

for (int i = 0; i < x.Length; i++)
    Console.Write("{0} ", x[i]);

a nebo takto:

foreach (double i in x)
    Console.Write("{0} ", i);
Editováno 7.1.2015 23:12
Nahoru Odpovědět 7.1.2015 23:11
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:7.1.2015 23:13

Vypisuje mi túto chybu:
Error 2 The name 'i' does not exist in the current context

 
Nahoru Odpovědět 7.1.2015 23:13
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:7.1.2015 23:15

Hoď sem celý program od prvního znaku až po poslední.

 
Nahoru Odpovědět 7.1.2015 23:15
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:7.1.2015 23:15

Ma to vypisať polia

 
Nahoru Odpovědět 7.1.2015 23:15
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:7.1.2015 23:16

using System;
using System.Collec­tions.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] x;
double []y;
double h = 0.05;
int n = (int)(1.4 / h);
//int n = (int)(2*3.14 /h);
x = new double[n];
y = new double[n];
for (int i = 0; i < n; i++)
{
x[i] = x[i - 1] + h;
y[i] = Math.Sin(x[i]);
}

Console.Write­Line("[{0},{1}­]", x[i], y[i]);
Console.ReadLine();
}
}
}

 
Nahoru Odpovědět 7.1.2015 23:16
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:7.1.2015 23:17

Já ti dal funkční konstrukci, která vypíše ty pole. Jenže tys to očividně dal do nějakého kontextu, kde ti to píše chybu. Proto jsem ti napsal, ať mi pošleš celý zdroják.

EDIT: Ten for cyklus k tomu taky potřebuješ...
EDIT2: Pro zdrojáky tu je přímo tag. Najdeš ho mezi těmi tlačítky nad textem zprávy.

Editováno 7.1.2015 23:18
 
Nahoru Odpovědět 7.1.2015 23:17
Avatar
loobka
Člen
Avatar
Odpovídá na loobka
loobka:7.1.2015 23:20

pole x ma vypisať 17 udajov a pole y[i]= Sin(x[i])

 
Nahoru Odpovědět 7.1.2015 23:20
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:7.1.2015 23:22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] x;
double []y;
double h = 0.05;
int n = (int)(1.4 / h);
//int n = (int)(2*3.14 /h);
x = new double[n];
y = new double[n];
for (int i = 0; i < n; i++)
{
x[i] = x[i - 1] + h;
y[i] = Math.Sin(x[i]);
}

for (int i = 0; i < n; i++)
 Console.WriteLine("pole {0}= Sin({1})", y[i], x[i]);
Console.ReadLine();
}
}
}
 
Nahoru Odpovědět 7.1.2015 23:22
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:7.1.2015 23:30

Dakujem ale nic mi to nevypisuje. Tam maju byt take udaje 0, 0.05......1.35

 
Nahoru Odpovědět 7.1.2015 23:30
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:7.1.2015 23:34
for (int i = 0; i < n; i++)

=>

for (int i = 1; i < n; i++)

Nečekal jsem, že tam přidáš můj cyklus mimo tvého. Vše co stačilo dát ten můj kód někde na konec toho tvého.

Editováno 7.1.2015 23:35
 
Nahoru Odpovědět 7.1.2015 23:34
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:8.1.2015 0:27

Diky, uz to je v poriadku. Jakyyy si ty dobryyy :)

 
Nahoru Odpovědět 8.1.2015 0:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.