|
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 (na false). 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.