Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ciąg arytmetyczny
Forum PHP.pl > Forum > Przedszkole
NexUsDK
Witam.
Mam do napisania skrypt, który będzie wypisywał po przecinku wszystkie wyrazy ciągu arytmetycznego, którego pierwszy wyraz, różnica i ilość wyrazów w ciągu są podawane przez użytkownika.
Napisałem go najpierw w JS, w którym zadziałał bez problemu, ale przy przeróbce go na PHP, pokazuje mi takie błędy ( jest ich tyle, ile powinno być wypisanych wyrazów ):
"Warning: A non-numeric value encountered in [ścieżka do pliku] on line 73"

Rozumiem z tego, że błąd dotyczy wartości nienumerycznej w kodzie. Niby wiem gdzie jest "wadliwy" element kodu, ale kiedy usunę to go, to nie wyświetla mi poprawnie wyniku. Próbuję ciągle wymyślić coś, ale jakoś nie idzie.

Formularz:

  1. <form method="POST">
  2. Pierwszy wyraz A1: <input type="number" name="A1"><br>
  3. Różnica ciągu R: <input type="number" name="R"><br>
  4. Liczba wyrazów w ciągu N: <input type="number" name="N"><br>
  5. <input type="submit" name="przycisk" value="Generuj ciąg">
  6. </form>


A to skrypt:

  1.  
  2. if(isset($_POST['A1']))
  3. {
  4.  
  5. $A1 = $_POST['A1'];
  6. $R = $_POST['R'];
  7. $N = $_POST['N'];
  8.  
  9. $ciag=0;
  10. $x=", ";
  11. for ($i=1; $i<=$N;$i++)
  12. {
  13. $ciag+=$A1 +($i-1) * $R + $x;
  14.  
  15. }
  16.  
  17. echo "<p>Ciąg arytmetyczny zawiera wyrazy: ".$ciag.".";
  18.  
  19. }
  20.  
  21.  


Mógłby ktoś pomóc mi w zrobieniu tego tak, jak należy i w miarę możliwości wytłumaczyć o co z tym biega i jak to zostało zrobione?
nospor
teksty w php laczy sie przy pomocy kropki a nie plusa

przenosze
NexUsDK
Cytat(nospor @ 4.12.2020, 11:25:16 ) *
teksty w php laczy sie przy pomocy kropki a nie plusa

przenosze


Przepraszam za zły dział. Nie zauważyłem tego, więc napisałem gdzie napisałem.

A co do mojego problemu, to tak, łączy się kropką, racja, ale kiedy w miejscu gdzie mam $ciag i na końcu + $x, kiedy + zmienię na kropkę, jest inny błąd, a pod nim tekst, który wypisuje nie to co trzeba.

Notice: A non well formed numeric value encountered in [ścieżka] on line 73
Ciąg arytmetyczny zawiera wyrazy: 9, .

Natomiast jak dam z kropką już w zdaniu na końcu, to wtedy nie wypisuje mi liczb wszystkich, a jedynie w tekście pokazuje się przecinek na końcu.
viking
  1. $_POST['A1'] = 1;
  2. $_POST['R'] = 2;
  3. $_POST['N'] = 3;
  4.  
  5. if(isset($_POST['A1']))
  6. {
  7.  
  8. $A1 = $_POST['A1'] ?? 0;
  9. $R = $_POST['R'] ?? 0;
  10. $N = $_POST['N'] ?? 0;
  11.  
  12. $ciag=[];
  13.  
  14. for ($i=1; $i<=$N;$i++)
  15. {
  16. $ciag[] = $A1 +($i-1) * $R;
  17.  
  18. }
  19.  
  20. echo "<p>Ciąg arytmetyczny zawiera wyrazy: ".implode(',', $ciag).".";
  21.  
  22. }
NexUsDK
Cytat(viking @ 4.12.2020, 12:55:24 ) *
  1. $_POST['A1'] = 1;
  2. $_POST['R'] = 2;
  3. $_POST['N'] = 3;
  4.  
  5. if(isset($_POST['A1']))
  6. {
  7.  
  8. $A1 = $_POST['A1'] questionmark.gif 0;
  9. $R = $_POST['R'] questionmark.gif 0;
  10. $N = $_POST['N'] questionmark.gif 0;
  11.  
  12. $ciag=[];
  13.  
  14. for ($i=1; $i<=$N;$i++)
  15. {
  16. $ciag[] = $A1 +($i-1) * $R;
  17.  
  18. }
  19.  
  20. echo "<p>Ciąg arytmetyczny zawiera wyrazy: ".implode(',', $ciag).".";
  21.  
  22. }


Dziękuję serdecznie za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.