Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Oaip честное слово, я уже наверное десяток подобных программ тут выкладывал. По крайней мере разложение числа на цифры в этой теме уже освещалось несколько раз. Ну а подсчитать какие цифры сколько раз встречаются, думаю, труда не составит.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Lord_of_Darkness Спасибо за помощь, только не могли бы Вы, если не сложно, написать вкратце коментарии к задаче на строки? Все-таки хочется разобраться что к чему, а не бездумно переписать.
Код:
var // набор разделителей слов в предложении delimiters : set of char = [' ', ',', '.']; // входная строка inputString : string; i, inStrLen : integer; // массив, в котором индекс является кодом символа (от 0 до 255) // а значение элемента массива - количество раз, которое символ с кодом // индекс встречается в окончании слов. symbols : array [0..255] of integer;
begin // ввод строки write('write text here : '); readln(inputString); // обнуление значений элементов массива for i:=0 to 255 do symbols[i]:=0;
i:=2; // получение длины строки inStrLen := Length(inputString); // проход по всем символам строки while i <= inStrLen do begin // если текущий элемент является разделителем if inputString[i] in delimiters then // а предыдущий им не является if not (inputString[i-1] in delimiters) then // значит этот предыдущий символ - последняя буква слова // следовательно нужно увеличить на единицу элемент массива // с индексом, соответствующим коду символа в таблице ASCII inc(symbols[ORD(inputString[i-1])]); inc(i); end;
// проверяем последний символ строки if not (inputString[inStrLen] in delimiters) then // если это не разделитель, то проводим ту же операцию inc(symbols[ORD(inputString[inStrLen])]);
inStrLen := 0; // пробегаем по массиву для поиска элемента с макс. значением for i:=0 to 255 do if symbols[inStrLen] < symbols[i] then inStrLen := i; // запоминаем его индекс
// если максимум найден (т.е. была введена не пустая строка и не // строка, состоящая из одних разделителей if inStrLen > 0 then // то выводим символ, встречающийся чаще всего в конце слов. writeln('Symbol is "' + CHR(inStrLen) + '"') // иначе выводим сообщение о некорректности введенных данных. else writeln('Error. Input data invalid.');
Есть такая задчка: создать множество из элементов типа Char, конец ввода обозначить "z". Найти во множестве элемент с минимальным номером в таблице кодов и распечатать элементы множества в алфавитном порядке. Проверять ее займет время,так что может ктонить решит по своему просто проверить
Код:
Uses Crt; Var s: set of Char; ch, rejim:Char; Procedure Konstr begin writeln('множество конструируется из символов 'a..z'); writeln;('введите элементы множества'); s:=[]; readln(ch); while True do begin s:=s+[ch]; if ch='z' then Exit; end; end; Procedure ManS; begin ch:=' '; while not(ch in S) do ch:=Suce(ch); writeln('элемент с минимальным номером равен ',ch); end; Procedure Rasp; var c1:char; begin for c1:='a' to 'z' do if c1 in s then writeln(c1); end; Begin Clrscr; while true do begin writeln('1-создание'); writeln('2-поиск элементов с минимальным номером'); writeln('3-вывод элементов множества'); writeln('4-выход'); readln(rejim); case rejim of '1':Konstr; '2':Mins; '3':Rasp; '4':Halt; end; readkey; end.
Lord_of_Darkness Спасибо за помощь Меня теперь интересует теоретический вопрос насчет процедур. В каких случаях нужно писать var в процедуре, а в каких не нужно, например:
Procedure pro1(VAR a:integer) и Procedure pro2(a:integer) ?
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
PERES var, если в теле процедуры или функции этот параметр будет изменятся и на выходе нужно получить именно измененный параметр. Если не нужно менять параметр, то var не писать, либо даже явно указать const.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 30.09.2005 Откуда: Кемерово
Помогите решить задачу( TP 7.0). Или напомните как цикл делоть с шагом в 100.
Плотность воздуха убывает с высотой h по закону: . Считая, что =1.29 кг/м3, z=1.25*10-4 1/м, напечатать таблицу зависимости плотности от высоты для значений от 0 до 1000 м, с шагом 100 м.
_________________ Я бегу от себя от этой жуткой реальности. В нормальном состоянии я чую прифкус ненормальности....
Member
Статус: Не в сети Регистрация: 03.01.2005 Откуда: Из России
Привет всем... народ, пожалуйста, кто чем может помогите решить 2 простейшие задачки...пожалуйста...
Задача В
Имя входного файла: b.in
Имя выходного файла: b.out
Максимальное время работы на одном тесте: 1000 миллисекунд
Максимальный объем используемой памяти: 4096 килобайт
Незнайка записал натуральное десятичное число. Сможет ли Знайка переставить некоторые цифры местами и прибавить получившееся натуральное число (не начинающееся с нуля) к исходному так, чтобы сумма содержала только цифры "9"?
Формат входных данных
Данное число (не более 2001 знаков).
Формат выходных данных
Число -1 или число с переставленными цифрами.
Задача С. Таблица
Имя входного файла: c.in
Имя выходного файла: c.out
Максимальное время работы на одном тесте: 1000 миллисекунд
Максимальный объем используемой памяти: 4096 килобайт
Незнайка записал в таблицу N*N клеток целые числа от 1 до N (каждое - по N раз). Знайка хочет узнать, сколько среди чисел от 1 до N встречается в каждой строке ровно по одному разу.
Формат входных данных
В первой строке - число N (не больше 100), в следующих N строках - таблица, записанная Незнайкой.
Формат выходных данных
Количество чисел, встречающихся в каждой строке по одному разу.
Есть такая задача,которую решить надо с помощью unit-ов и процедур...Помогите решить или натолкните на пральный ход...
Дана последовательность чисел: a1,a2,...,an. Проверить, верно ли, что каждый член этой последовательности больше его номера.
Доброго времени суток всем, попалась мне задачка. Сам не осилил..Поможете?
Расписание движения n маршрутов автобусов по m остановкам города в течении 1 часа внесено в таблицу размерностью N x M. Считаем что каждый автобус может побывать на какой либо остановке только один раз. Значение "0" в таблице обозначает, что автобус на этой остановке не останавливается. Определить, есть ли маршруты на которых не встретятся ни одна пара автобусов; автобусы каких маршрутов встретятся на одной остановке
Member
Статус: Не в сети Регистрация: 08.04.2006 Откуда: Сибиряк Я
Блин паскаль уже сниться начал..... Люди выручайте есть у кого код какой либо игрушки на паскале, время на написание не хватает, а без игры и экзамена нет! Если кому то понадобяться задачи из курса университета пишите в личку чем смогу тем помогу! А вот с игрулей напряг помогите plz.....
Помогите решить 2 задачки на Паскале...plz.. Они вроде бы не сложные, но решить не могу! ПОЖАЛУЙСТА выручите!
1. Вычислить количество слов в каждой из последовательно-стей А, В, С.
Для вычисления количества слов в произвольной последователь-ности использовать самостоятельно разработанную процедуру.
2. Если текст содержит только малые латинские буквы, определить, упорядочен ли он по алфавиту.
Member
Статус: Не в сети Регистрация: 29.05.2006 Откуда: Кобрин.BY Фото: 2
Постройте на экране компьютера две окружности радиусов R1 и R2, разных цветов, имитируя движение одной окружности по другой.
Буду благодарен за помощь.
_________________ L-B-H Xtreem Team|Belarus - присоединяйся к нам!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения