|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
ProblemW łańcuchu s należy określić liczbę wszystkich słów. |
Zadanie zliczenia słów (ang. words counting) sprowadza się do wyszukiwania liniowego znaków. Na początku pracy algorytmu ustawiamy znacznik słów t na false. Wartość true tego znacznika oznacza przetwarzanie znaków słowa. Licznik słów ls zerujemy. Teraz w pętli przeglądamy kolejne znaki łańcucha s. Jeśli napotkanym znakiem jest znak litery lub cyfry, to sprawdzamy stan znacznika t. Jeśli jest on ustawiony na false, to znaczy, iż napotkaliśmy w tekście początek słowa. W takim przypadku ustawiamy t na true i zwiększamy o 1 licznik ls. Jeśli znacznik t jest już ustawiony na true, to napotkaliśmy kolejną literę już zliczonego słowa – nic nie robimy. Jeśli napotkamy inny znak, to traktujemy go jako separator i znacznik t zawsze zerujemy. Po przeglądnięciu wszystkich znaków łańcucha s w zmiennej ls mamy liczbę słów.
K01: ls ← 0 ; zerujemy licznik słów K02: t ← false ; zerujemy znacznik słowa K03: Dla i = 0, 1, …, |s|-1: ; przeglądamy znaki łańcucha s wykonuj kroki K04…K09 K04: Jeśli s[i] = cyfra_lub_litera, to idź do kroku K07 K05: t ← false ; zerujemy znacznik słowa K06: Następny obieg pętli K03 K07: Jeśli t = true, ; słowo już zliczone to następny obieg pętli K03 K08: t ← true ; ustawiamy znacznik słowa K09: ls ← ls+1 ; zliczamy słowo K10: Zakończ z wynikiem ls
|
Uwaga: Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich. |
| Program odczytuje wiersz znaków, a następnie zlicza występujące w nim wyrazy i wypisuje ich ilość. |
Pascal// Zliczanie wyrazów w łańcuchu tekstowym
// Data: 5.07.2008
// (C)2020 mgr Jerzy Wałaszek
//---------------------------------------
program prg;
var
s : ansistring;
i, ls : integer;
t : boolean;
begin
readln(s);
t := false; ls := 0;
for i := 1 to length(s) do
if s[i] in ['0'..'9', '_', '-',
'A'..'Z', 'a'..'z',
'Ą', 'ą', 'Ć', 'ć', 'Ę', 'ę',
'Ł', 'ł', 'Ń', 'ń', 'Ó', 'ó',
'Ś', 'ś', 'Ź', 'ź', 'Ż', 'ż'] then
begin
if not t then
begin
t := true; inc(ls);
end
end
else t := false;
writeln(ls);
writeln;
end. |
C++// Zliczanie wyrazów w łańcuchu tekstowym
// Data: 5.07.2008
// (C)2020 mgr Jerzy Wałaszek
//-----------------------------
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
int i, ls, n;
unsigned char c;
bool t;
getline(cin, s);
n = s.length(); t = false; ls = 0;
for(i = 0; i < n; i++)
{
c = s[i];
if(((c >= '0') && (c <= '9')) ||
((c >= 'A') && (c <= 'Z')) ||
((c >= 'a') && (c <= 'z')) ||
(c == '_') || (c == '-') ||
(c == 164) || (c == 165) ||
(c == 143) || (c == 134) ||
(c == 168) || (c == 169) ||
(c == 157) || (c == 136) ||
(c == 227) || (c == 228) ||
(c == 224) || (c == 162) ||
(c == 151) || (c == 152) ||
(c == 141) || (c == 171) ||
(c == 189) || (c == 190))
{
if(!t)
{
t = true; ls++;
}
}
else t = false;
}
cout << ls << endl << endl;
return 0;
} |
Basic' Zliczanie wyrazów w łańcuchu tekstowym
' Data: 5.07.2008
' (C)2020 mgr Jerzy Wałaszek
'-----------------------------
Dim As String s
Dim As Uinteger i, ls, n, t, c
Line Input s
n = Len (s): t = 0: ls = 0
For i = 1 To n
c = Asc (Mid (s, i, 1))
if(((c >= Asc("0")) And (c <= Asc("9"))) Or _
((c >= Asc("A")) And (c <= Asc("Z"))) Or _
((c >= Asc("a")) And (c <= Asc("z"))) Or _
(c = Asc("_")) Or (c = Asc ("-")) Or _
(c = 164) Or (c = 165) Or (c = 143) Or _
(c = 134) Or (c = 168) Or (c = 169) Or _
(c = 157) Or (c = 136) Or (c = 227) Or _
(c = 228) Or (c = 224) Or (c = 162) Or _
(c = 151) Or (c = 152) Or (c = 141) Or_
(c = 171) Or (c = 189) Or (c = 190)) Then
If t = 0 Then
t = 1: ls += 1
End If
Else
t = 0
End If
Next
Print ls
Print
End |
Python
(dodatek)# Zliczanie wyrazów w łańcuchu tekstowym
# Data: 13.03.2024
# (C)2024 mgr Jerzy Wałaszek
# --------------------------
s = input()
t, ls = False, 0
x = "AĄBCĆDEĘFGHIJKLŁMNOÓPQRSŚTUVWXYZŻŹ"
x += x.lower()
x += "_-0123456789"
for i in s:
if x.find(i) >= 0:
if not t:
t = True
ls += 1
else:
t = False
print(ls)
print()
|
| Wynik: |
Ala ma krokodyla z plastiku i gumy, ale co to nas obchodzi. 12 |
JavaScript<html>
<head>
<title>
Zliczanie
wyrazów
</title>
</head>
<body>
<div style="overflow-x: auto;"
align="center">
<table
border="0"
cellpadding="4"
style="border-collapse:
collapse">
<tr>
<td nowrap>
<form
name="frm"
style="text-align:
center;
background-color:
#E7E7DA">
<b>
Zliczanie wyrazów
w łańcuchu tekstowym
</b><br/>
(C)2026 mgr
Jerzy Wałaszek
<hr>
Wprowadź tekst:<br>
<input
type="text"
name="inp_s"
size="50">
<hr>
<input
type="button"
value="Wykonaj"
name="B1"
onclick="main();">
<hr>
<b>Wynik:</b>
<div id="out">.</div>
</form>
</td>
</tr>
</table>
</div>
<script type=text/javascript
language=javascript>
// Zliczanie wyrazów
// w łańcuchu tekstowym
// Data: 5.07.2008
// (C)2008 mgr Jerzy Wałaszek
//---------------------------
function main()
{
var s,i,lw,n,c,t;
s = document.frm
.inp_s.value;
n = s.length;
t = false;
lw = 0;
for(i = 0; i < n; i++)
{
c = s.charAt (i);
if(((c>= '0') &&
(c <= '9')) ||
(c == '_') ||
(c == '-') ||
((c>= 'A') &&
(c <= 'Z')) ||
((c>= 'a') &&
(c <= 'z')) ||
(c == 'Ą') ||
(c == 'ą') ||
(c == 'Ć') ||
(c == 'ć') ||
(c == 'Ę') ||
(c == 'ę') ||
(c == 'Ł') ||
(c == 'ł') ||
(c == 'Ń') ||
(c == 'ń') ||
(c == 'Ó') ||
(c == 'ó') ||
(c == 'Ś') ||
(c == 'ś') ||
(c == 'Ź') ||
(c == 'ź') ||
(c == 'Ż') ||
(c == 'ż'))
{
if(!t)
{
t = true;
lw++;
}
}
else
t = false;
}
document.getElementById("out")
.innerHTML = lw;
}
</script>
</body>
</html>
|
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.