Форум программистов, компьютерный форум, киберфорум
Perl
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8

Вычислить сумму элементов одномерного массива, лежащих в диапазоне чисел от A до B

09.12.2018, 15:27. Показов 4593. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вычислить сумму элементов одномерного массива, лежащих в диапазоне чисел от A до B. Количество элементов массива нужно ввести с клавиатуры, а потом этот массив ,чтобы можно было увидеть. И диапазон тоже с клавиатуры. Если просто искать сумму , то это выглядит так.

В примере дан такой код. При запуске происходит запрос :"введите количество элементов", я ввожу, но в сумме у меня всегда ноль. И в отличие от примера не происходит вывода списка элементов массива. Хотя код тот же . Ограничения по диапазону здесь нет.
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
print "Vvedite kolichestvo elementov \n";
$k = <>;
@mas = ();
for ($i=0; $i<k; $i++)
{
    $mas[$i] = rand(100);
}
  foreach my $element (@mas)
  { # $element is sininiv print "$element " ;
  }
$sum = 0;
for ($i=0; $i<k; $i++)
 {
    $sum += $mas[$i];
 }
print "\n";
print 'summa=';
print $sum;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2018, 15:27
Ответы с готовыми решениями:

Вычислить сумму элементов массива, лежащих в диапазоне от А до В
Как вычислить сумму элементов массива, лежащих в диапазоне от А до В, (А и В я задаю сам) ?

Вычислить количество элементов массива, лежащих в диапазоне от А до В и сумму расположенных после максимального
Нужно написать код пол условию: В одномерном массиве, состоящем из n вещественных чисел, вычислить: 1) количество элементов массива,...

Найти количество элементов одномерного массива, лежащих в диапазоне от А до В
Найти количество элементов массива, лежащих в диапазоне от А до В С#

8
 Аватар для volodin661
6805 / 2304 / 349
Регистрация: 10.12.2013
Сообщений: 7,930
11.12.2018, 10:57
Цитата Сообщение от Nika23 Посмотреть сообщение
И диапазон тоже с клавиатуры.
Nika23, а где же ввод диапазона ?


Цитата Сообщение от Nika23 Посмотреть сообщение
но в сумме у меня всегда ноль.
Начни программу с
Perl
1
use strict;
это поможет.
1
25 / 25 / 14
Регистрация: 29.09.2014
Сообщений: 165
12.12.2018, 08:41
C:\perl>perl.pl 1 100 первый аргумент должен быть меньше второго
5050

Perl
1
2
3
4
5
6
7
8
#!perl
use strict;
use warnings;
use utf8;
 
my $sum = 0;
    for ($ARGV[0]..$ARGV[1]) {$sum += $_;}
print "$sum\n";
C:\perl>perl.pl как видно по синтаксису это for а сокращение foreach
write numbers
1
2
4
6
7
8
20
^Z
48

Perl
1
2
3
4
5
6
7
8
9
10
#!perl
use strict;
use warnings;
use utf8;
 
print "write numbers \n";
my @array = (<STDIN>);
my $summa = 0;
foreach my $number (@array) {$summa += $number;}    
print "$summa\n";
еще сумму натурального числового ряда можно найти так 1..100

Perl
1
2
3
4
5
6
#!perl
use strict;
use warnings;
use utf8;
my $sum = (100+1)*50;
print "$sum\n";
1
 Аватар для volodin661
6805 / 2304 / 349
Регистрация: 10.12.2013
Сообщений: 7,930
13.12.2018, 02:18
Заходи ещё денька через три и опять напиши то же самое.
И ни в коем случае не обращай внимания на то, что тебе пишут.
В конце концов такой подход должен сработать.
1
25 / 25 / 14
Регистрация: 29.09.2014
Сообщений: 165
13.12.2018, 05:26
Цитата Сообщение от Nika23 Посмотреть сообщение
вычислялась сумма не всех элементов массива, а только , попадающих в этот заданный диапазон чисел
твой код и не подразумевает такой проверки (ее просто нет в коде почему не работает видно сразу )
Сир Volodin661 подсказал тебе самую главную парадигма при разработке всех программ на Perl но ты ее не включил(а)...... если тебе действительно нравиться заниматься программированием переделай кусочек своего кода по уму. Если тебе нужно использовать именно for делай все в первом for следуй правилу бритвы Оккама "не множь сущности без надобности";

Теперь про ошибку.... количество итераций цикла в твоем коде зависит от значения переменно $k но во вех циклах ты используешь просто буку k из за чего твое условие $i < k не истинно и цикл не выполняется не разу

Добавлено через 3 минуты
Цитата Сообщение от Nika23 Посмотреть сообщение
В примере дан такой код.
можешь выложить свою методичку мне просто интересно почему так преподают......
0
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 8
16.12.2018, 14:48  [ТС]
Вообщем, ларчик просто открывался, все из-за невнимательности, перед k забыла поставить знак переменной. Кидаю рабочий код, вдруг кому еще пригодиться, уже все с диапазоном, все как надо) Разобралась))
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
print "Vvedite kolichestvo elementov \n";
$k = <>;
print "Vvedite element A \n";
$A = <>;
print "Vvedite  element B \n";
$B = <>;
@mas = ();
for ($i=0; $i<$k; $i++)
{
    $mas[$i] = rand(100);
}
  foreach my $element (@mas)
  { # $element is sininiv
    print "$element " ;
  }
$sum = 0;
for ($i=0; $i<$k; $i++)
 {
    if (($mas[$i] > $A) && ($mas[$i] < $B))
   { $sum += $mas[$i];}
   else{}
 }
print "\n";
print 'summa=';
print $sum;
0
 Аватар для volodin661
6805 / 2304 / 349
Регистрация: 10.12.2013
Сообщений: 7,930
16.12.2018, 15:35
Цитата Сообщение от Nika23 Посмотреть сообщение
друг кому еще пригодиться
Во-первых, пригодится без мягкого знака, а во-вторых,
perl - это не C и так на нём не пишут. В третьих, если читать, что тебе отвечают
и использовать use strict, то на забытый перед k сиджил тебе бы указал компилятор.

Добавлено через 19 минут
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
29
30
31
32
33
34
35
36
37
38
39
#! /usr/bin/env perl
#
# Вычислить сумму элементов одномерного массива, лежащих в диапазоне чисел от N до M
#
 
use strict;
 
sub prompt_i {                  # подпрограмма запроса на ввод целого числа или чисел и возврат числа или чисел в зависимости от контекста вызова
 
    print shift;
    $_ = <>;
    my @a = /\d+/g;
    return wantarray ? @a : "@a";
}
 
my $d = prompt_i "Введите размерность массива: ";
 
my @a;
for ( 1 .. $d ) {               # генерация массива 
    
    push @a, int(rand(100));
}
 
print join(', ', @a), "\n";     # показ массива
 
my ($n, $m) = prompt_i "Введите диапазон N,M: ";
 
($n,$m) = ($m,$n) if $m < $n;   # если введён отриц. диапазон, преобразовать его в положительный
 
my $sum;
for ( @a ) {
 
    if ( $_ >= $n and $_ <= $m ) {
        
        print "$_ + ";
        $sum += $_;
    }
}
print " = $sum\n";              # показ результата
1
25 / 25 / 14
Регистрация: 29.09.2014
Сообщений: 165
17.12.2018, 00:51
я посмотрел методичку Nika23 скорей всего она учиться на заочном. Методичка с кучей примеров в которой ей предлагают ознакомиться с изучение основных принципов программирования на языке perl это пособие страниц на 30 в котором рассказывается про (переменные , логические операций и массивы в perl) и делается это очень по своему.



Весь пример который взяла Nika23 человека который написал методичку . Наш автор добавила только ($mas[$i] > $A) && ($mas[$i] < $B)
0
 Аватар для volodin661
6805 / 2304 / 349
Регистрация: 10.12.2013
Сообщений: 7,930
17.12.2018, 03:25
где-то ещё perl изучают.. о как.
но если таки методички, то лучше бы и не надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2018, 03:25
Помогаю со студенческими работами здесь

Вычислить сумму кубов всех натуральных чисел, лежащих в диапазоне от Х до У
Ребят, нужно написать программу на языке Си, задание: Вычислить сумму кубов всех натуральных чисел, лежащих в диапазоне от Х до У, где Х и...

Вычислить сумму кубов всех четных чисел, лежащих в диапазоне от Х до У
Ребят, нужно написать программу на языке Си, задание: Вычислить сумму кубов всех четных чисел, лежащих в диапазоне от Х до У, где Х и У...

Вычислить сумму положительных чисел, лежащих в диапазоне от 2 до 8 на главной диагонали и выше её
Вычислить сумму положительных чисел, лежащих в диапазоне от 2 до 8 на главной диагонали и выше её. (С использованием динамического массива).

Вычислить количество элементов массива, лежащих в диапазоне от А до В
в одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; ...

Вычислить количество элементов массива, лежащих в диапазоне от А до В
В одномерном массиве, состоящем из N вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В. ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru