Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2017, 12:52   #1
Alina266
Пользователь
 
Регистрация: 19.03.2017
Сообщений: 10
По умолчанию Pascal:Вывести все четные цифры, содержащиеся в слове наибольшей длины, и вывести число повторений каждой этой цифры

Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Элементами слов могут быть любые графические символы. Вывести все четные цифры, содержащиеся в слове наибольшей длины, и вывести число повторений каждой этой цифры в этом слове.
Если можно, с объяснениями, так как я мало чего знаю в Паскале.
Alina266 вне форума Ответить с цитированием
Старый 19.03.2017, 13:20   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const n=15;//кол-во слов
var ss:array[1..n] of string;//массив слов
    d:array[0..9] of integer;//количество цифр в лове наибольшей длины
    i,j,k,l:integer;
    s:string;
begin
   Randomize;
   For i:=1 to n do
   begin
      l:=1+Random(80);//произвольная длина (от 1 до 80 символов)
      ss[i]:='';//"обнуляем" текущее слово
      For j:=1 to l do
      begin
         k:=48+Random(36);//36 - кол-во символов (10 цифр и 26 букв латинского алфавита)
         //48 - с этой позиции начинаются цифры (по таблице ASCII)
         If k>57 then//если цифра вне предела (57 - это цифра "9"), то...
            k:=k+7;//... увеличиваем переменную на 7 (65 - это буква "A")
         ss[i]:=ss[i]+Char(k);//добавляем символ
      end;
      Writeln(ss[i]);//печать на экран
   end;
   //ищем слово наибольшей длины
   l:=Length(ss[1]);//длина слова наибольшей длины (условно)
   s:=ss[1];//слово наибольшей длины (условно)
   For i:=2 to n do
      If l<Length(ss[i]) then//если нашли слово наибольшей длины больше предыдущей, то...
      begin
         l:=Length(ss[i]);//... записываем наибольшую длину и само слово
         s:=ss[i];
      end;
   Writeln;
   For i:=0 to 9 do
      d[i]:=0;//кол-во цифр обнуляем перед выполнением очередной задачи
   For i:=1 to l do
   begin
      k:=Ord(s[i]);//код символа
      If k<=57 then//если цифра, то...
      begin
         k:=k-48;//...определяем ее порядковый номер (или какая это цифра)
         If k mod 2=0 then//четность
            Write(s[i]);//печать на экран
         Inc(d[k]);//увеличиваем число повторений цифры на 1
      end;
   end;
   Writeln;
   //вывод на экран число повторений каждой цифры
   For i:=0 to 9 do
      If i mod 2=0 then
         If d[i]>0 then
            Writeln(i,' - ',d[i]);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.03.2017, 13:41   #3
Alina266
Пользователь
 
Регистрация: 19.03.2017
Сообщений: 10
По умолчанию

Огромное спасибо. Отдельное спасибо за объяснения.
Что бы преподавателю что то понравилось, нужно очень постараться.
Alina266 вне форума Ответить с цитированием
Старый 19.03.2017, 13:50   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести все содержащиеся в массиве A(N) нечетные числа и их количество K ( Делфи 7 ) nadyaH Помощь студентам 19 17.03.2014 21:56
Ввести натуральное число N. Вывести вначале все его четные, а затем нечетные делители leshiy_777 Паскаль, Turbo Pascal, PascalABC.NET 10 20.12.2013 15:51
В массиве поставить вначале все четные, а затем все нечетные цифры в массиве (Написать программу в коде делфи) Murfik97 Помощь студентам 4 26.11.2013 21:26
Даны цифры от 1 до 38 нужно составить все возможные комбинации из 6 чисел без повторений. gector Фриланс 14 01.04.2013 20:20
Для каждой введенной цифры (0–9) вывести соответствующее ей название на английском языке (0 — zero, 1 — one, 2 — two, ...) Delphi Ирина Анатольевна Помощь студентам 1 16.05.2012 08:34