Задачи по программированию с решениями. 1. Массив
- Подробности
- Обновлено 06.02.2012 09:56
- Просмотров: 702
В этом разделе приведены решения некоторых стандартных задач по программированию с использованием языка программирования PHP. Задачи могут использованы для практикума по основам программирования, в частности, практикума по PHP.
Задача 1. Дан массив чисел а0,...,аn-1. Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента. Подсчитать количество таких пар.
<?php
$x=array();
for($i=0;$i<10;$i++)
$x[$i]=rand(-50,50);
$n=count($x);
echo "N=$n<br>";
$p=0;
for($i=0;$i<$n-1;$i++){
echo"$i|$x[$i]<br>";
if($x[$i]>0 and $x[$i+1]>0) $p++;
}
echo"$i|$x[$i]<br>";
echo "Миқдори ҷуфтҳо - $p";
?>
Задача 2. Даны действительные числа а0,...,аn-1. Вычислить сумму положительных и произведение четных членов данного массива. Если таких членов нет, то выдать сообщение.
<?php
$n=10;
$x=array();
for($i=0;$i<$n;$i++)
$x[$i]=rand(-50,50);
$s=0;
$p=1;
for($i=0;$i<$n;$i++){
echo "$i|$x[$i]<br>";
if($x[$i]>0) $s+=$x[$i];
$r=2*(int)($x[$i]/2);
if($x[$i]==$r) $p*=$x[$i];
}
if($s==0)
echo "Ададҳои мусбат вуҷуд надоранд<br>";
else
echo "Суммаи ададҳои мусбат: $s <br>";
if($p==1)
echo "Ададҳои ҷуфт вуҷуд надоранд<br>";
else
echo "Ҳосили зарби ададҳои ҷуфт: $p";
?>
Задача 3. Если в данном массиве действительных чисел а0,...,аn-1 есть хотя бы один член, меньший чем -2, то все отрицательные члены заменить их квадратами.
<?php
$x=array();
for($i=0;$i<10;$i++)
$x[$i]=rand(-15,50);
$n=count($x);
for($i=0;$i<$n;$i++)
echo "$i|$x[$i]<br>";
$fl=0;
$i=0;
while($fl==0 && $i<$n){
if($x[$i]<-2) $fl=1;
$i++ ;
}
echo "<p>";
if($fl==1){
for($i=0;$i<$n;$i++)
if($x[$i]<0) $x[$i]*=$x[$i];
}
for($i=0;$i<$n;$i++)
echo "$i|$x[$i]<br>";
?>
Задача 4. Сформировать в программе массив из целых чисел от 2 до N. Подсчитать сумму квадpатов четных и сумму квадратов нечетных чисел.
<?php
$N=12;
$N-=1;
for($i=0;$i<$N;$i++)
$x[$i]=$i+2;
for($i=0;$i<$N;$i++)
echo "$i|$x[$i]<br>";
$sum_even=0;
$sum_odd=0;
for($i=0;$i<$N;$i+=2)
$sum_even+=$x[$i]*$x[$i];
for($i=1;$i<$N-1;$i+=2)
$sum_odd+=$x[$i]*$x[$i];
echo "Суммаи квадрати ададҳои ҷуфт: $sum_even<br>";
echo "Суммаи квадрати ададҳои тоқ: $sum_odd<br>";
?>
Задача 5. Массив а0,...,а23 содержит данные измерения температуры воздуха в течение дня. Найти максимальную, минимальную и среднюю температуру воздуха.
<?php
$N=24;
for($i=0;$i<$N;$i++)
$x[$i]=rand(22,38);
for($i=0;$i<$N;$i++)
echo "$i, $x[$i]<br>";
$max=$x[0];
$min=$x[0];
$s=$x[0];
for($i=1;$i<$N;$i++){
if($max<$x[$i]) $max=$x[$i];
if($min>$x[$i]) $min=$x[$i];
$s+=$x[$i];
}
$avg=$s/$N;
echo "Max = $max<br>";
echo "Min = $min<br>";
echo "Қимати миёна = $avg<br>";
?>
Задача 6. Дан массив целых чисел а0,...,аn-1. Выяснить имеется ли в данном массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве.
<?php
$N=10;
for($i=0;$i<$N;$i++)
$x[$i]=rand(-22,22);
for($i=0;$i<$N;$i++)
echo "$i, $x[$i]<br>";
$i=0;
$flag=true;
while($i<$N && $flag){
if($x[$i]<0){
$r=2*(int)($x[$i]/2);
if($x[$i]<>$r) $flag=false;
}
$i++;
}
if(!$flag) echo "INDEX: ",$i-1;
?>
Задача 7. Дан массив целых чисел а0,...,аn-1. Найти количество и сумму тех членов данного массива, которые делятся на 5 и не делятся на 7.
<?php
$n=10;
$x=array();
for($i=0;$i<$n;$i++)
$x[$i]=rand(1,40);
for($i=0;$i<$n;$i++)
echo"$i|$x[$i] <br>";
$i=0;
$p=0;
$s=0;
while($i<$n ) {
$r=5*(int)($x[$i]/5);
if($x[$i]==$r)
if($r<>7*(int)($r/7)) {
$s+=$r;
$p++;
}
$i++;
}
echo "Миқдор: $s<br>";
echo "Сумма: $p<br>";
?>
Задача 8. Дан массив действительных чисел а0,...,аn-1. Получить количество отрицательных членов данного массива и пpоизведение элементов, принадлежащих отрезку [b,d].
<?php
$n=10;
for($i=0;$i<$n;$i++)
$x[$i]=rand(-10,20);
for($i=0;$i<$n;$i++)
echo "$i|$x[$i]<br>";
$b=1;
$d=10;
$k=0;
$p=1;
for($i=0;$i<$n;$i++){
$r=$x[$i];
if($r<0) $k++;
if($r>=$b && $r<=$d) $p*=$r;
}
echo "Миқдори аъзоҳои манфӣ: $k";
echo "Ҳосили зарби аъзоҳои аз [b,d]: $p<br>";
?>
Задача 9. Дан массив целых чисел а0,...,аn-1. Найти все пары (аi,аi+1), такие что аi<=3 и аi+1<0. Распечатать их значения и номеpа. Если таких паp нет, то выдать сообщение.
<?php
$N=10;
for($i=0; $i<$N; $i++)
echo $i,": ",$x[$i]=rand(-20,20),"<br>";
$fl=0;
for($i=0; $i<$N-1; $i++) {
if($x[$i]<=3 && $x[$i+1]<0) {
$fl=1;
echo "x[",$i,"]=",$x[$i]," x[",$i+1,"]=",$x[$i+1],"<br>";
}
}
if(!$fl)
echo "Ҷуфтҳои талабшаванда нестанд<br>";
?>
Задача 10. Дан массив целых чисел а0,...,аn-1. Найти все пары (аi,аi+1),такие,что аi=0 и аi+1 кратно 2.
<?php
$N=10;
for($i=0; $i<$N; $i++)
echo $i,": ",$x[$i]=rand(-8,8),"<br>";
for($i=0; $i<$N-1; $i++)
if($x[$i]==0 && $x[$i+1]==2*(int)($x[$i+1]/2))
echo "x[",$i,"]=",$x[$i]," x[",$i+1,"]=",$x[$i+1],"<br>";
?>