schemat blokowy

kasiaPR2
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 4 maja 2022, o 09:44
Płeć: Kobieta
wiek: 21
Podziękował: 1 raz

schemat blokowy

Post autor: kasiaPR2 » 4 maja 2022, o 09:52

Cześć, potrzebuję pomocy z jednym schematem blokowym do zadania o poniższej treści:

Należy wczytać ciąg liczb rzeczywistych. Wczytywanie należy zakończyć, gdy pojawi się liczba ujemna. Dla każdej wczytanej liczby należy obliczyć jej kwadrat. Numer kolejny liczby, tę liczbę oraz jej kwadrat należy wyświetlić na ekranie.

Nie mam pojęcia o schematach blokowych, choć próbowałam nie raz :(
Mam nadzieję, że znajdzie się jakaś dobra dusza, potrzebuję to na lekcję informatyki.
Z góry dziękuję :) <3
Ostatnio zmieniony 4 maja 2022, o 11:33 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa tematu.

Ponury123
Użytkownik
Użytkownik
Posty: 127
Rejestracja: 5 lip 2015, o 14:48
Płeć: Mężczyzna
Lokalizacja: nie wiem
Podziękował: 11 razy
Pomógł: 21 razy

Re: schemat blokowy

Post autor: Ponury123 » 4 maja 2022, o 11:02

Identyczna treść zadania jak tutaj
Wczytywanie liczb/ makrodefinicje

Wykonaj to co napisałem w podlinkowanym poście to Ci pomogę.

kasiaPR2
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 4 maja 2022, o 09:44
Płeć: Kobieta
wiek: 21
Podziękował: 1 raz

Re: schemat blokowy

Post autor: kasiaPR2 » 4 maja 2022, o 11:13

Rzeczywiście to samo zadanie. Program udało mi się napisać, lecz o schemacie blokowym nie mam pojęcia.

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

int main () 
{
  float x; unsigned int n = 1;
  for (;;) 
  {
  	printf ("Wprowadzaj kolejne liczby ciagu\n");
    scanf ("%f", &x);
    if (x < 0) break;
    printf ("%u\t%f\t%f\n", n++, x, x*x);
  }
  return 0;
}
Ostatnio zmieniony 4 maja 2022, o 11:33 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.

Ponury123
Użytkownik
Użytkownik
Posty: 127
Rejestracja: 5 lip 2015, o 14:48
Płeć: Mężczyzna
Lokalizacja: nie wiem
Podziękował: 11 razy
Pomógł: 21 razy

Re: schemat blokowy

Post autor: Ponury123 » 4 maja 2022, o 11:17

W tytule masz schemat blokowy, czyli domyślam się, że to schemat Cię interesuje, a nie kod. W takim razie będziesz potrzebować dowiedzieć się jak oznacza się początek i koniec wykonywania programu, jak zaznaczyć instrukcję warunkową, jak reprezentowana jest pętla oraz jak zaznaczyć wykonywanie się instrukcji(wypisanie kwadratu liczby itd.).

To jest zadanie na 5 minut z wyszukiwaniem powyższych kroków w internecie, wykażcie choć trochę pracy własnej.

Dodano po 4 minutach 43 sekundach:
Ooo, nie sądziłem, że odpowiesz, kod wygląda dobrze, tylko używaj tagów code i zadbaj o formatowanie następnym razem, żeby było czytelniej. Schemat blokowy to prosta sprawa, rysuje się go po prostu i nie ma też jakiś bardzo sztywnych zasad co do jego tworzenia,

Kod: Zaznacz cały

pl.wikipedia.org/wiki/Schemat_blokowy
Schemat blokowy
tutaj masz wszystko czego potrzebujesz żeby takowy narysować, wyszukaj sobie też hasła jak schemat blokowy pętla/instrukcja warunkowa i znajdziesz przykłady jak to narysować.

kasiaPR2
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 4 maja 2022, o 09:44
Płeć: Kobieta
wiek: 21
Podziękował: 1 raz

Re: schemat blokowy

Post autor: kasiaPR2 » 4 maja 2022, o 19:09

Zrobiłam coś takiego, ale nie mam pewności czy jest dobrze...
Załączniki
IMG_20220504_190206.jpg
Zrobiłam coś takiego, ale nie mam pewności czy jest dobrze...

Ponury123
Użytkownik
Użytkownik
Posty: 127
Rejestracja: 5 lip 2015, o 14:48
Płeć: Mężczyzna
Lokalizacja: nie wiem
Podziękował: 11 razy
Pomógł: 21 razy

Re: schemat blokowy

Post autor: Ponury123 » 5 maja 2022, o 11:27

Zamiast \(\displaystyle{ a(n)}\) dałbym \(\displaystyle{ n}\). Pętla powinna wracać przed blok wczytywania liczby(ew. do tego właśnie bloku), a nie za niego, wczytywanie liczby jest przecież w pętli. Mam też uwagę do bloków z incjalizacją i inkrementacją zmiennej \(\displaystyle{ i}\).
Jeśli zamieściłaś je tam bo chciałaś pokazać, że to pętla \(\displaystyle{ for}\) to nie dobrze. Schemat ma reprezentować koncepcję, więc pętla to pętla, sama wracająca strzałka wystarczy. Ale jeśli dodałaś tę zmienną tam bo ma ona reprezentować
Numer kolejny liczby
to dobrze - swoją drogą ten fragment polecenia jest dla mnie niejasny, nie wiem czy chodzi o n++ czy o numer_iteracji++, po Twoim kodzie widzę, że zinterpretowałaś to jako numer_iteracji++ i zdeklarowałaś jako unsigned int n = 1.

Więc wracając, jeśli zmienna \(\displaystyle{ i}\) reprezentuje numer iteracji, to dobrze, że dodałaś te dwa bloczki, ale należało by też dodać tę zmienną w bloku operacyjnym, czyli zamiast "Wyświetl: liczba ciągu, licznik, liczba ciągu * liczba ciągu" powinno być: "Wyświetl: \(\displaystyle{ n}\), \(\displaystyle{ i}\), \(\displaystyle{ n^{2} }\). Po to w schemacie definiujesz te zmienne aby później na nich operować. Osoba czytająca Twój schemat zrozumiałaby, że ma wczytać jakaś wartość do \(\displaystyle{ a(n)}\), a później głowiła by się co to jest ta cała liczba ciągu i licznik i co właściwie ma wyświetlić. W razie dalszych problemów pytaj śmiało.

Dodano po 32 minutach 17 sekundach:
Jeszcze blok z inicjalizacją zmiennej \(\displaystyle{ i}\) powinien być przed pętlą, inaczej w każdym kroku iteracji będzie przypisywana do niej wartość 1.

ODPOWIEDZ