На бейсике так:
Dim i As Integer, Min As Integer, MinWord As String, x1 As String
Open "FileName" For Input As #1 ' Вместо FileName задаем имя файла
Min = 32767: MinWord = "" ' Min - берем самое большое число типа Integer
Do While Not EOF(1) ' цикл чтения строк
Line Input #1, x1 ' чтение строки
intPoz = 1
Do While x1 <> ""
intPoz = InStr (1, x1, " ", vbTextCompare) ' ищем пробел
If intPoz > 0 Then
Word = Left$ (x1, intPoz - 1) ' слово - от начала строки до пробела
x1 = Mid$ (x1, intPoz + 1) ' новая строка - от пробела до конца старой строки
Else ' Не нашли пробелов - это последнее слово в строке
Word = x1
x1 = ""
End If
If Len (Word) < Min Then ' Сравниваем длину слова с минимальной
Min = Len (Word)
MinWord = Word
End If
Loop
Loop
MsgBox (MinWord) ' Выводим самое короткое слово
End
Почему программы на Бейсике всегда короче, чем на Паскале?
Другие языки программирования и технологии
Дан текст. файл. Вывести слово текста наимен. длины. Слово- набор симолов без пробелов и огран. пробелом. Помогите ПЛЗ!
Первый способ:
Uses Crt;
Var
f1:text;
st,sl,min:string;
begin
assign(f1,'text.txt');
reset(f1);
min:=' '; // тут между апострофами должно быть столько пробелов сколько символов в самой длинной строке в тексте
while not eof(f1) do
begin
readln(f1,st);
while pos(' ',st)<>0 do
begin
sl:=copy(st,1,pos(' ',st));
if length(min)>=length(sl) then min:=sl;
delete(st,1,pos(' ',st));
end;
end;
close(f1);
writeln('Min = ',min);
readln;
end.
Второй способ:
uses crt;
var min, len, i : integer;
s, str, min_str : string;
f:text;
begin
clrscr;
assign(f,'text.txt');
reset(f);
while not eof(f) do begin
readln(f,s); //читаем строку
min := length(s); // длина строки
len := 0; // обнуляем переменную
min_str := ''; // обнуляем переменную
str := ''; // обнуляем переменную
for i:=1 to length(s) do // циклом проходимся по всей строке - от 1-го символа и до последнего
if s[ i ] <> ' ' then begin // если символ не является пробелом, то:
inc(len); // увеличиваем длину слова на 1
str := str + s[ i ]; // присваеваем текущий символ строке, по одному символу будет собираться слово полностью
end else begin
if len < min then begin // если длина последнего найденного слова меньше предыдущего (минимального)
min := len; // длина слова
min_str := str; // само слово
end;
len := 0; // обнуляем для того чтобы искать длину следующего слова
str := ''; // обнуляем чтоб записывать следующее найденное слово
end;
end;
close(f);
writeln('min = ', min_str); // вывод
readln; // а ето будет ожидать нажатия Enter
end.
Uses Crt;
Var
f1:text;
st,sl,min:string;
begin
assign(f1,'text.txt');
reset(f1);
min:=' '; // тут между апострофами должно быть столько пробелов сколько символов в самой длинной строке в тексте
while not eof(f1) do
begin
readln(f1,st);
while pos(' ',st)<>0 do
begin
sl:=copy(st,1,pos(' ',st));
if length(min)>=length(sl) then min:=sl;
delete(st,1,pos(' ',st));
end;
end;
close(f1);
writeln('Min = ',min);
readln;
end.
Второй способ:
uses crt;
var min, len, i : integer;
s, str, min_str : string;
f:text;
begin
clrscr;
assign(f,'text.txt');
reset(f);
while not eof(f) do begin
readln(f,s); //читаем строку
min := length(s); // длина строки
len := 0; // обнуляем переменную
min_str := ''; // обнуляем переменную
str := ''; // обнуляем переменную
for i:=1 to length(s) do // циклом проходимся по всей строке - от 1-го символа и до последнего
if s[ i ] <> ' ' then begin // если символ не является пробелом, то:
inc(len); // увеличиваем длину слова на 1
str := str + s[ i ]; // присваеваем текущий символ строке, по одному символу будет собираться слово полностью
end else begin
if len < min then begin // если длина последнего найденного слова меньше предыдущего (минимального)
min := len; // длина слова
min_str := str; // само слово
end;
len := 0; // обнуляем для того чтобы искать длину следующего слова
str := ''; // обнуляем чтоб записывать следующее найденное слово
end;
end;
close(f);
writeln('min = ', min_str); // вывод
readln; // а ето будет ожидать нажатия Enter
end.
Паскаль?
Похожие вопросы
- Напишите, пожалуйста программу в Дельфи. Вывести k (катое) слово строки S.Слово - набор символов, ограниченный пробелами
- подскажите через кудой решать эту задачку с++2)Дан текст. Слова в тексте разделены пробелами. Вычеркнуть из текста вс
- Как без особых сложностей убрать огромные пробелы в тексте. Когда я убираю их, стирается весь пробел полностью
- как подсчитать количество слов в строке разделённым больше чем одним пробелом(Delphi)
- Как посчитать пробелы в тексте С++? Ток не 1 строку а пробелы)
- Создать список из повторяющихся слов текста из файла. Первый элемент-наиб. часто повторяющееся слово/ Паскаль. (+)
- Как конвертировать простой текст файл на binary файл
- кто нить знает как в Дельфи написать прогу : Дан текст, если в тексте сушествует знак "+" то заменить его на "-"
- Как вывести набираемый текст из формы в блок div?
- Есть ли программа переводящая аудио-файлы mp3 в текст формата Word?