Praca domowa z C#

AL
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 9 lat
0

Witam!
Rozpocząłem studia informatyczne powiem szczerze, że z zamiarem spacjalizacji się w bazach danych no ale jak wiadomo przez programowanie trzeba też przejść... Przechodząc jednak do meritum sprawy, dostałem pracę od wykladowcy do wykonania w C# treść jej jest następująca "Zaprojektuj (w języku CSharp) program konsolowy dla powtarzanych
obliczeń wartości funkcji F (x) zadanej wzorem według poniżej podanego
przydziału zadań indywidualnych".

Oto wzór który otrzymałem:

user image

Nie za bardzo wiem jak się za to zabrać. Nie oczekuje gotowych rozwiązań ale wskazówek a najlepiej jakiś odnośników do kursów, gdzie podobne zagadnienie będę miał wytłumaczone. Zależy mi bardzo na czasie.
Pozdrawiam

edytowany 1x, ostatnio: alsan
katelx
btw. specjalizacja w bazach danych tez wymaga jako takich umiejetnosci programistycznych takze nie polecam obijania sie w tej kwestii.
katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
2

musisz wczytac/wypisac parametr, do tego przyda ci sie klasa Console https://msdn.microsoft.com/en-us/library/system.console(v=vs.110).aspx
do sparsowania parametru mozesz uzyc np. double.Parse https://msdn.microsoft.com/pl-pl/library/7yd1h1be(v=vs.110).aspx

zalazek funkcji ktora powinienes napisac:

Kopiuj
public static double F(double x)
{
    if(x>=1)
    {
//tu obliczenia dla tego przypadku i zwrocenie wyniku
    }
    if(x<-1)
    {
//...
//return ...
    }
//tu obliczenia dla -1...1 i zwrocenie wyniku
}

w klasie Math znajdziesz wszystko czego ci trzeba do obliczen https://msdn.microsoft.com/pl-pl/library/system.math(v=vs.110).aspx

K8
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 4 lata
0

Ja bym jednak proponował zrobienie trzech funkcji - każda odpowiedzialna za inny przedział, i dopiero je wywoływać z if'a czy case'a.
Inaczej główna metoda będzie mało czytelna.

katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
0
kreis84 napisał(a):

Ja bym jednak proponował zrobienie trzech funkcji - każda odpowiedzialna za inny przedział, i dopiero je wywoływać z if'a czy case'a.
Inaczej główna metoda będzie mało czytelna.

swietny pomysl na skomplikowanie banalnej funkcji. moze jeszcze osobna klase dla kazdego przedzialu ;) co rozumiesz przez case'a? switcha na double? :D

CS
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:52
0

Ja Ci proponuję następujący algorytm:
START -> Podaj wartość double -> Wywołaj funkcję F(x) i wypisz jej wynik na ekran -> Przejdź do początku dopóki nie zostanie napisany pusty ciąg znaków -> STOP.

AL
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 9 lat
0
Kopiuj
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace XXX
{
    class Program
    {
        static void Main(string[] args)
        {

            ConsoleKeyInfo nz_quit;
            do
            {


                double nz_X;
                var nz_Q = 1;
    
                



                nz_X = 0.0f;
                Console.WriteLine("\n\n\t\tProgram Powtarzalne Obliczenia Funkcji\n\n");
                Console.Write("\tAby rozpocząć działanie programu, wprowadź wartość X: ");




                while (!double.TryParse(Console.ReadLine(), out nz_X))
                {
                    Console.Write("\n\tWprowadziłeś nieprawidłową wartość X, wprowadź prawidłową wartość: ");

                }
                Console.WriteLine("\n\tX wynosi: " + nz_X);



                Console.WriteLine("Sin(x)"); // sinus 
                Console.Write(Math.Sin(nz_X));


                Console.WriteLine("\n Cos(x)"); //cosinus 
                Console.Write(Math.Cos(nz_X));

                Console.WriteLine("\n\n xD");
                Console.Write(Math.Sqrt(nz_Q + Math.Abs(nz_X)*Math.Exp(e));



                Console.Write("\n\n\tCzy chcesz zakończyć działanie aplikacji (T/N):"); //po wykonaniu operacji pytamy się czy zamknąć program czy zacząć od nowa 

                nz_quit = Console.ReadKey(); //klawisz T zamyka aplikację każdy inny wznawia jej działanie 

            } while (nz_quit.Key != ConsoleKey.T);
        }
    }
}

Wyrzuca mi błąd :

Kopiuj
Severity	Code	Description	Project	File	Line
Error	CS0103	The name 'e' does not exist in the current context	ConsoleApplication8	d:\users\norbert\documents\visual studio 2015\Projects\ConsoleApplication8\ConsoleApplication8\Program.cs	50
 
edytowany 1x, ostatnio: alsan
T9
Nie można podawać 3 wartośći tylko musisz if'ami wybrać jedną o to tu chodzi :), a tak na marginesie jak pytasz sie T/N to program pownien reagowac tylko na te dwa przyciski:). Wiem że to na brudno ale a nóż widelec :)
CS
Wyrzuca Ci błąd ponieważ stała e jest zdefiniowana jako Math.E a nie e.
SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
0

No przecież masz napisane co jest nie tak.

Nie istnieje, żadna zmienna e, której próbujesz użyć. Zamień to Math.E.

edytowany 1x, ostatnio: some_ONE
Heheczek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:148
1
Kopiuj
 class Program
    {
        public static double F(double x)
        {
            if (x < -1)
            {
                double absoluteX = Math.Abs(x);
                return Math.Sqrt(1 + absoluteX * Math.Pow(Math.E, absoluteX));
            }
            if (x >= 1)
            {
                return Math.Sqrt(1 + Math.Pow(Math.E, x)) + Math.Log10(x) * Math.Pow(1 + Math.Pow(x, 2), -2);
            }
            return Math.Sin(x) * Math.Cos(x);
        }
        static void Main(string[] args)
        {
            ConsoleKeyInfo cki = new ConsoleKeyInfo();
            double x;
            do
            {
                Console.WriteLine("Podaj x:");
                if (!double.TryParse(Console.ReadLine(), out x)){
                    Console.WriteLine("Nieprawidlowy x");
                    continue;
                }
                Console.WriteLine("Wartosc funkcji dla x wynosi: " + F(x));
                Console.WriteLine("Zakonczyc? [T/N]");
                cki = Console.ReadKey();
            }
            while(cki.Key != ConsoleKey.T);
        }
    }
0

Proszę o pomoc taka sama treść zadania tylko inne dane.

SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
0

I masz problem, żeby w gotowym kodzie zmienić warunek i sposób obliczania wyniku?

0

To już jest śmieszne, żeby do gotowca nie umieć danych podstawić. Najwidoczniej powinieneś powtórzyć materiał, skoro sobie nie radzisz.

0

Jak mam powtórzyć materiał jak miałem dopiero jedne zajęcia xD

SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
0

To sobie powtórz materiał z tych zajęć.

Zresztą masz tu gotowy kod, do którego wystarczy wstawić warunki i sposób obliczania funkcji z twojego zadania.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)