Задачка — мне дан двумерный массив. Нужно создать программу, чтобы найти положительные элементы массива и заменить на число b
и найти индекс числа b
.
Пытался писать так:
b=int(input('b ='))
a=[[-12,6,9], [-49,25,5], [b,5,-27]]
for i in a:
for j in i:
print(j,end=" ")
print
if j > 0:
list.append(j)
print (*[i for i in a if b in i])
print(b)
Grundy♦
79.9k9 золотых знаков76 серебряных знаков133 бронзовых знака
задан 27 ноя 2020 в 13:00
1
что мешает задачу решить в лоб как в математике 5 класса?
a = [[-12,6,9],[-49,25,5],[7,5,-27]]
b = 11
for i in range(len(a)):
for j in range(len(a[i])):
if a[i][j] > 0:
a[i][j] = b
print(a)
или если хочется в 1 строчку, то можно так:
c = [[b if elem > 0 else elem for elem in line] for line in a]
ответ дан 27 ноя 2020 в 13:04
ZhiharZhihar
36.9k4 золотых знака25 серебряных знаков67 бронзовых знаков
Формулировка задачи:
Помогите пожалуйста!!
Задание: Дан одномерный массив размерностью n, найти все положительные элементы: 1.Учесть что если пользователь ввел не число, а букву то выдать сообщение повторить ввод. 2.или использовать всевозможные действия против ошибок!! ввод с клавиатуры.
Буду очень благодарен!!
Код к задаче: «Дан одномерный массив размерностью n, найти все положительные элементы»
textual
Листинг программы
const Max_Value = 100; var arr: array[1..Max_Value] of integer; err, n: integer; St: string; i: byte; begin writeln('Введите размереность массива до ', Max_Value, ': '); repeat write('N: '); readln(St); val(St, n, err); until (n in [1..Max_Value]) and (err = 0); writeln('Массив: '); i:=1; repeat repeat readln(St); val(St, arr[i], err); until (err = 0); i:=i + 1; until (i = n+1); writeln('Положительные: '); for i:=1 to n do if arr[i] > 0 then write(arr[i], ' '); end.
Кроме того, как написали выше, что ты упускаешь нулевой элемент, ты так же поймаешь исключение IndexOutOfRange, потому что попытаешься обратиться к элементу массива с индексом 5, которого у тебя нет. Так же тебе нужно вынести int nm из цикла и инициализировать нулем, иначе каждую итерацию с положительным числом у тебя будет сбрасываться сумма.
Сonsole.WriteLine(«Сумма всех положительных числе:» + nm); — это тоже стоит написать после цикла, а не внутри него, а то у тебя сейчас выводится каждое положительное число отдельно.
В итоге, это должно выглядеть вот так:
class Pragram
{
static void Count()
{
int[] num = { 5, -7, -1, 3, 9 };
int nm = 0;
for (int i = 0; i < num.Length; i++)
{
int number = num[i];
if (number > 0)
{
nm += number;
}
}
Console.WriteLine(«Сумма всех положительных числе:» + nm);
}
static void Main()
{
Count();
Console.ReadLine();
}
}
Изображение:
Решение заданий на составление программы для поиска элементов в массиве и нахождение суммы элементов.
Задача 1.
Дан одномерный массив из 50 элементов. Массив заполнен
случайными числами от -100 до 100.
Вывести на экран все положительные элементы массива.
var
a: integer;
z: array [1..50] of integer;
begin
for a := 1 to 50 do
begin
z[a] := random(201) — 100;
if z[a] > 0 then
write(z[a],’ ‘);
end;
end.
Задача 2.
Дан одномерный массив из 100 элементов.
Массив заполнен случайными числами от -100 до 100.
Найти сумму тех элементов массива, которые одновременно
имеют четные и отрицательные значения.
var
a, sum: integer;
z: array [1..100] of integer;
begin
sum := 0;
for a := 1 to 100 do
begin
z[a] := random(201) — 100;
if (z[a] mod 2 = 0) and (z[a] < 0) then
sum := sum + z[a];
end;
write(‘Сумма отриц. элементов = ‘, sum);
end.
Видео с решением
Задачи:
- Подсчитать количество и сумму всех положительных чисел массива, а также элементов кратных 3.
- Подсчитать количество и сумму всех отрицательных чисел массива, а также элементов кратных 3.
- Предусмотреть ввод чисел с клавиатуры (через форму).
- Предусмотреть конец последовательности — число 0. Т.е. числа в массиве, идущие после 0, должны игнорироваться.
Поиск положительных элементов с FOREACH
Поиск положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v > 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v > 0)
$sum += $v;
}
var_dump($sum);
Поиск положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v > 0 and $v % 3 == 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v > 0 and $v % 3 == 0)
$sum += $v;
}
var_dump($sum);
Поиск отрицательных элементов с FOREACH
Поиск отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v < 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v < 0)
$sum += $v;
}
var_dump($sum);
Поиск отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v < 0 and $v % 3 == 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v < 0 and $v % 3 == 0)
$sum += $v;
}
var_dump($sum);
Поиск положительных элементов с FOR
Поиск положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0 and $arr[$i] % 3 == 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0 and $arr[$i] % 3 == 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск отрицательных элементов с FOR
Поиск отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0 and $arr[$i] % 3 == 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0 and $arr[$i] % 3 == 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск элементов с WHILE
Поиск чисел с while аналогичен поиску с for, только эта строчка:
for($i = 0; $i < count($arr); $i++)
Заменяется на эти:
$i = -1;
while(++$i < count($arr))
Пример для поиска положительных чисел:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
$i = -1;
while(++$i < count($arr))
{
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values);
Ввод чисел через форму
Простая форма, отправляемая методом GET, с PHP обработчиком:
<?php
if(isset($_GET['nums']))
{
$arr = explode(' ', $_GET['nums']);
}
?>
<form>
<input type="text" name="nums">
<input type="submit" name="Поиск">
</form>
Введя в эту форму 1 2 35 -34, в переменной $arr мы получим массив [1, 2, 35, -34]. Правда вместо чисел в нём будут строки, но это неважно, поскольку перед сравнением значений PHP всё равно будет приводить их к числам.
Теперь вы можете добавить сюда код любого из описанных выше циклов, например вычисление суммы положительных чисел с циклом for:
<?php
if(isset($_GET['nums']))
{
$arr = explode(' ', $_GET['nums']);
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$sum += $arr[$i];
}
var_dump($sum);
}
?>
<form>
<input type="text" name="nums">
<input type="submit" name="Поиск">
</form>
Конец последовательности
Для реализации конца последовательности нужно в начало цикла foreach добавить следующий код:
if($v == 0)
break;
Для цикла for код будет выглядеть так:
if($arr[$i] == 0)
break;
Пример для поиска положительных элементов foreach:
<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v == 0)
break;
if($v > 0)
$values[] = $v;
}
var_dump($values); // [2]
Пример для поиска положительных элементов for:
<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] == 0)
break;
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values); // [2]