Ilość cyfr liczby naturalnej



Podobne dokumenty
Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Palindromy. Przykładowe rozwiązanie

Przeliczanie na zapis stałoprzecinkowy

Całkowanie numeryczne - metoda prostokątów

Funkcje i instrukcje języka JavaScript

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Język ludzki kod maszynowy

Liczby pierwsze - generacja liczb pierwszych

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

2.8. Algorytmy, schematy, programy

Podstawy Programowania

Całkowanie numeryczne - metoda Simpsona

Wstęp do programowania

Aplikacje WWW - laboratorium

Zajęcia 4 - Wprowadzenie do Javascript

SCHEMAT OCENIANIA poziom rozszerzony arkusz II

Algorytm. a programowanie -

EGZAMIN MATURALNY Z INFORMATYKI

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Zaawansowane aplikacje internetowe

Podstawy Programowania Podstawowa składnia języka C++

JAVAScript w dokumentach HTML (2)

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Miejsca zerowe funkcji - Metoda połowienia

Miejsca zerowe funkcji - Metoda Newtona

Podstawy JavaScript ćwiczenia

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Programowanie - wykład 4

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Jerzy Nawrocki, Wprowadzenie do informatyki

Luty 2001 Algorytmy (7) 2000/2001

Zdarzenia Zdarzenia onload i onunload

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Język programowania PASCAL

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Podstawy i języki programowania

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Aplikacje WWW - laboratorium

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

JAVAScript w dokumentach HTML - przypomnienie

SCHEMAT OCENIANIA poziom rozszerzony arkusz I

Wykład 03 JavaScript. Michał Drabik

1. Wprowadzenie do C/C++

Jerzy Nawrocki, Wprowadzenie do informatyki

Definicje. Algorytm to:

Podstawy Programowania Algorytmy i programowanie

Technologie cyfrowe semestr letni 2018/2019

C++ wprowadzanie zmiennych

Liczby pierwsze - algorytm RSA

Programowanie w języku C++ Grażyna Koba

Algorytmy. Programowanie Proceduralne 1

Struktura pliku projektu Console Application

Pytania sprawdzające wiedzę z programowania C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

if (wyrażenie ) instrukcja

2.3. Wyznaczanie wartości wielomianu, pozycyjne systemy liczbowe i reprezentacja danych liczbowych w komputerze

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wstęp do informatyki- wykład 7

Liczby pierwsze - sito Eratostenesa

Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach

Wstęp do informatyki- wykład 11 Funkcje

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

1. Wprowadzenie do C/C++

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Wstęp do programowania. Wykład 1

ALGORYTMY I STRUKTURY DANYCH

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Wstęp do informatyki- wykład 6

WHILE (wyrażenie) instrukcja;

Język C++ zajęcia nr 2

Wyjątki (exceptions)

Czas pracy: 60 minut

Algorytmy. Programowanie Proceduralne 1

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Zapis algorytmów: schematy blokowe i pseudokod 1

Iteracyjna realizacja wybranych algorytmów

Specyfikacja zadania informatycznego nr 1

Sortowanie stogowe Heap Sort

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Wstęp do informatyki- wykład 9 Funkcje

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Algorytmy, reprezentacja algorytmów.

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Akademia ETI Marcin Jurkiewicz

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Aplikacje WWW - laboratorium

Transkrypt:

Ilość cyfr liczby naturalnej Użytkownik wprowadza liczbę naturalną n. Podaj algorytm znajdowania ilości cyfr liczby n. (Np.: po wprowadzeniu liczby 2453, jako wynik powinna zostać podana liczba 4). Specyfikacja algorytmu: Dane wejściowe: liczba naturalna n Dane wyjściowe: liczba naturalna ilość cyfr liczby n a) Przedstaw ten algorytm w formie opisu kolejnych kroków. b) Zaprezentuj ten algorytm w formie schematu blokowego. c) Napisz program realizujący ten algorytm w wybranym przez siebie języku programowania (Pascal, C lub C++). Oto przykład działania takiego programu: Podaj liczbę naturalną: 2453 Liczba 2453 posiada 4 cyfr(y) d) Zaimplementuj ten algorytm w formie programu w języku Visual Basic lub skryptu w języku JavaScript. Oto przykładowy projekt takiej aplikacji: Przykładowe rozwiązanie Jeśli n jest liczbą naturalną, wtedy najłatwiej uzyskać dostęp do jej ostatniej cyfry (cyfry jedności), gdyż jest ona równa reszcie z dzielenia n przez 10 (n mod 10). Z kolei tę ostatnią cyfrę możemy usunąć z liczby n poprzez podzielenie jej przez 10 (na sposób całkowity, czyli z odrzuceniem części ułamkowej). Na przykład 2453 podzielone na sposób całkowity przez 10 wynosi 245 wygląda to tak, jakbyśmy usunęli ostatnią cyfrę liczby 2453. To dzielenie można powtarzać: 245 : 10 = 24 + część ułamkowa 24 : 10 = 2 + część ułamkowa 2 : 10 = 0 + ewentualna część ułamkowa Zatem proces dzielenia powinien zakończyć się w momencie, gdy w wyniku działania dostaniemy wynik 0 (zero). Uzupełnijmy specyfikacje algorytmu o pomocniczą zmienną naturalną i oraz o uwagi na temat użytej notacji. Proponujemy użyć notacji zaczerpniętej z języka programowania Pascal w celu oznaczenia dzielenia całkowitego (operator div ): Zmienna pomocnicza: Notacja: liczba naturalna i dotychczasowa ilość cyfr liczby n a div b oznacza wynik z dzielenia całkowitego liczby a przez liczbę b

Opis kolejnych kroków pkt a) Krok 1: Wczytaj liczbę n. Krok 2: Zmiennej i przypisz wartość 0. Krok 3: Zmiennej n przypisz wartość n div 10. Powiększ o 1 wartość zmiennej i. Krok 4: Jeśli n jest równe 0, wtedy wypisz wartość zmiennej i, po czym zakończ działanie algorytmu. W przeciwnym razie przejdź do kroku 3. Uwaga: Umieszczenie warunku sprawdzającego na końcu algorytmu powoduje jego poprawne działanie nawet wtedy, gdy n jest od początku równe zero. (Jest to wszakże liczba jednocyfrowa.) Schemat blokowy pkt b) Start Wczytaj n i 0 n n div 10 i i + 1 NIE n = 0? TAK Wypisz i Stop

Program w języku Pascal pkt c) Tym razem prezentujemy rozwiązanie w postaci oddzielnej funkcji ilosccyfr: program Ilosc_Cyfr; Ilość cyfr liczby naturalnej function ilosccyfr(n: integer): integer; var i: integer; begin i := 0; repeat n := n div 10; i := i + 1; until n = 0; ilosccyfr := i end; var n: integer; begin write('podaj liczbę naturalną: '); read(n); writeln('liczba ', n, ' posiada ', ilosccyfr(n), ' cyfr(y)') end. Program w języku C++ pkt c) Tym razem prezentujemy rozwiązanie w postaci oddzielnej funkcji ilosccyfr: // Ilość cyfr liczby naturalnej #include <iostream> int ilosccyfr(int n) int i=0; do n = n/10; i++; while(n>0); return i; main() int n; cout << "Podaj liczbę naturalną: "; cin >> n; cout << "Liczba " << n << " posiada " << ilosccyfr(n) << " cyfr(y) " << endl;

Program w języku Visual Basic pkt d) Pole tekstowe, na którym użytkownik wpisuje liczbę, jest oznaczone jako Text1. Przycisk uruchamiający procedurę obliczającą jest oznaczony jako Command1. Obliczeniem ilości cyfr wprowadzonej liczby zajmuje się funkcja IloscCyfr. Wynik programu wpisywany jest na polu tekstowym Text2. Oto definicja funkcji IloscCyfr: Function IloscCyfr(n) Dim i i = 0 Do n = n \ 10 i = i + 1 Loop While n > 0 IloscCyfr = i End Function A tak wygląda procedura stowarzyszona z przyciskiem Command1: Private Sub Command1_Click() Dim n n = Val(Text1.Text) Text2.Text = IloscCyfr(n) End Sub Uwaga: Operator \ oznacza dzielenie całkowite (div). Program w języku JavaScript pkt d) Prezentujemy kompletny kod HTML strony WWW będącej rozwiązaniem zadania: <html> <head> <script language=javascript> function ilosccyfr(n) var i = 0; do n = Math.floor(n/10); i++; while(n>0); return i; function oblicz() var n = eval(document.f1.n.value); document.f1.wynik.value = ilosccyfr(n); </script> </head> <body> <h1 align=center>ilość cyfr</h1>

<form name=f1> <center> Podaj liczbę całkowitą: <br> <input type=text size=10 name=n> <br><br> <input type=button value=oblicz onclick=oblicz()> <br><br> Ilość cyfr: <br> <input type=text size=20 name=wynik> <br> </center> </form> </body> </html> Uwaga: Funkcja Math.floor daje w wyniku część całkowitą swojego argumentu (ang. floor), zatem wyrażenie Math.floor(n/10) oznacza dzielenie całkowite zmiennej n przez 10.