Форум программистов, компьютерный форум, киберфорум
Наши страницы
Perl: разработка для Web
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Maxis10
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 28
1

Массив: Вывести на экран массив предложений с разделителем элементов знаком процента

22.09.2017, 15:02. Просмотров 1045. Ответов 4
Метки нет (Все метки)

Текст содержит список нумерованных предложений, начинающихся с новой строки. Сформировать массив этих предложений. Вывести его на экран с разделителем элементов знаком процента


 Комментарий модератора 
Одна задача - одна тема. Придерживайтесь этого правила, пожалуйста.
0
Миниатюры
Массив: Вывести на экран массив предложений с разделителем элементов знаком процента  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2017, 15:02
Ответы с готовыми решениями:

Дан массив натуральных чисел А[m,n] и число а. Вывести этот массив на экран, вычислит количество элементов равных а и вывести их индексы
Дан массив натуральных чисел А и часло а. Вывести этот массив на экран, обчислить количество...

Массив: Вывести массив на экран. Найти сумму элементов массива.
1. Заполнить массив А квадратами целых чисел от 1 до 100. Вывести массив на экран. Найти сумму...

Задан массив целых чисел. Вывести на экран массив, составленный из заданного количества минимальных элементов исходного
Помогите доделать!!! Массив должен быть динамический, с указателями, а вывод минимальных элементов...

Как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на экран?
как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на...

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный...

4
volodin661
2204 / 990 / 166
Регистрация: 10.12.2013
Сообщений: 3,313
22.09.2017, 23:48 2
1) предположим, что текст живёт в файле. работа с файлом начинается с функции open
http://perldoc.perl.org/functions/open.html
Полученный файл-handle используется при дальнейшем чтении. Оператором построчного чтения
являются угловые скобки <>. http://perldoc.perl.org/functions/readline.html
Чтобы прочесть одним махом весь текст в массив, в левой части должна быть переменная типа массив @arr,
а в правой соответственно оператор чтения с файл-handle внутри. а между ними оператор присвоения =.

(продолжение следует)


Добавлено через 4 минуты
( а что это за учебное заведение, где проходят язык программирования Perl ? просто любопытно )
0
Maxis10
0 / 0 / 0
Регистрация: 17.09.2014
Сообщений: 28
26.09.2017, 13:20  [ТС] 3
ВолГУ
0
volodin661
2204 / 990 / 166
Регистрация: 10.12.2013
Сообщений: 3,313
29.09.2017, 23:59 4
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Ленивым государственным волжским студентам посвящается
# Задача 1
# Текст содержит список нумерованных предложений, начинающихся с новой строки. Сформировать массив этих предложений.
# Вывести его на экран с разделителем элементов знаком процента
 
#!/usr/bin/env perl -w
use strict;
 
open my $fh, "FILE.TXT" or die $!;
 
my @arr = <$fh>;
 
close $fh;
 
chomp @arr;
 
$, = '%';
print @arr;
 
=pod
 
Смущает фраза 'нумерованное предложение'.
Если имеется в виду то, что надо вывести на экран в отсортированном по номеру виде,
то в финальном print  добавляется вызов фунции sort
 
print sort @arr;
 
=cut
Добавлено через 6 часов 31 минуту
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Ленивым государственным волжским студентам посвящается
# Задача 2
# 12 + 22 + 31 + 44 + 87 + 7
# Сформировать массив слагаемых, вычислить сумму, вывести на экран
 
#!/usr/bin/env perl -w
use strict;
 
my $expression =  '12 + 22 + 31 + 44 + 87 + 7';
my @terms      =  $expression =~ /\d+/g;
my $sum;
 
$sum += $_ for @terms;
 
print "$expression = $sum \n";
Добавлено через 43 минуты
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Ленивым государственным волжским студентам посвящается
# Задача 3
# строка имеет вид ЧИСЛО+ЧИСЛО:ЧИСЛО+ЧИСЛО. Вычислить соответствующее значение выражения.
# подразумеваю, что ':' - это просто двоеточие, а не символ операции деления.
 
#!/usr/bin/env perl -w
use strict;
 
# строку с выражением можно даже усложнить, на решение это никак не повлияет.
my $str =  '12+22:31+44+87 : 100 + 7 - 27 * 50';
my @xyz =  split /:/, $str;
my @result;
 
push @result, eval for @xyz; 
 
$, = ':';
print @result;
1
volodin661
2204 / 990 / 166
Регистрация: 10.12.2013
Сообщений: 3,313
03.10.2017, 02:23 5
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Ленивым государственным волжским студентам посвящается
# Задача 4
# каждое слово предложения записать с новой строки
#
#!/usr/bin/env perl -w
use strict;
use utf8;
binmode STDOUT, ':utf8';
 
my $line = 'Графиня изменившимся лицом бежит пруду';
my @words = $line =~ /\w+/g;
 
$, = "\n";
print @words;
 
# Задача 5
# Преобразовать слово, расставив между буквами символ '_'
#
 
s {(?<=\w) (?#междубуквие) (?=\w)} {_}gx for @words;
 
print @words;
поскольку в тексте появились русские буквы, появилась и прагма use utf8 ( LINE 7 ),
в противном случае не сработает метасимвол \w в регулярном выражении,
а также назначаем PerlIO - слою атрибут utf8 с помощью функции binmode ( LINE 8 ),
чтобы не было ругани при выводе на экран.

(?#междубуквие) - это встроенный в рег.выр комментарий, типа проясняющий куда именно вставится '_'

Добавлено через 1 час 2 минуты
Perl
1
2
3
4
5
6
7
8
9
# Ленивым государственным волжским студентам посвящается
# Задача 6
# Данные о покупателе записаны строкой вида
#     name:Фамилия Имя Oтчество, email:user@mail.ru, age:99
# Напишите программу, которая запишет из этой строки соответств. хэш
 
my $line = 'name:Самецкий Арнольд Епифаныч, email:sae@mail.ru, age:99';
 
my %person = $line =~ / (\w+) : ([^,]+) /gx;
Добавлено через 4 часа 15 минут
то же, но с божьей помощью Perl6

Задача1
Perl
1
2
my @arr = "FILE.TXT".IO.lines;
@arr.join("%").say;
Задача2
Perl
1
2
3
my $expression =  '12 + 22 + 31 + 44 + 87 + 7';
my @arr = $expression.comb(/\w+/);
say sum(@array);
Задача3
Perl
1
2
my $str ="12+22:31+44+87 : 100 + 7 - 27 * 50";
$str.split(":").map(*.EVAL).join(":").say;
Задача4
Perl
1
2
my $line = 'Графиня изменившимся лицом бежит пруду';
.say for $line.words
Задача5
Perl
1
2
my $line = 'Графиня изменившимся лицом бежит пруду';
.subst(/<?after \w><?before \w>/, "_", :g).say for $line.words
Задача6
Perl
1
2
3
my $line = 'name:Самецкий Арнольд Епифаныч, email:sae@mail.ru, age:99';
my %h;
$line ~~ m:g / (\w+) ':' (<-[,]>+) { %h.push: $0, $1 } /;
1
03.10.2017, 02:23
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2017, 02:23

Через многофункциональность. Ввести/вывести массив из 10 элементов вещественного типа. Подсчитать и вывести на экран ко
Ввести/вывести массив из 10 элементов вещественного типа. Подсчитать и вывести на экран количество...

Ввести массив А из 10 элементов,найти произведение отрицательных элементов и вывести на экран
Ввести массив А из 10 элементов,найти произведение отрицательных элементов и вывести на экран....

Дан массив из n элементов. Найти в нем количество элементов, больших 10 и вывести их на экран.
Помогите решить задачу: Дан массив из n элементов. Найти в нем количество элементов, больших 10 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru