Задачи по программированию с решениями. 2. Массив
- Подробности
- Обновлено 19.01.2012 22:37
- Просмотров: 227
Задачи могут использованы для практикума по основам программирования, в частности, практикума по PHP.
Задача 11. Даны действительные числа а0,...,а15. Получить мах(а0+а15, а1+а14, ..., а7+а8).
<?php
$N=16;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(0,99),"<br>";
$max=$x[0]+$x[15];
echo "x[0]=",$x[0],"; x[",$N-1,"]=",$x[$N-1],"<br>";
$n=$N/2;
for($i=1;$i<$n;$i++){
$r=$x[$i]+$x[$N-$i-1];
if($max<$r) $max=$r;
echo "x[",$i,"]=",$x[$i],"; x[",$N-$i-1,"]=",$x[$N-$i-1],"<br>";
}
echo "Max = $max<br>";
?>
Задача 12. Даны целые числа а0,...,аn-1. Все члены массива а0,...,аn-1, предшествующие наименьшему числу, умножить на это число.
<?php
$N=20;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(0,99),"<br>";
$min=$x[0];
$index=0;
for($i=1;$i<$N;$i++)
if($min>$x[$i]) {
$min=$x[$i];
$index=$i;
}
echo "Min = $min, Index = $index<br>";
for($i=0;$i<$index;$i++)
$x[$i]*=$min;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i],"<br>";
?>
Задача 13. Дан массив символов s0,..sn-1. Подсчитать сколько раз встречается в массиве символ К.
<?php
$s="Китобро Каримов Комил гирифтааст.";
$n=strlen($s);
$p=0;
for($i=0;$i<$n;$i++)
if($s[$i]=='К') $p++;
echo "Микдори К - $p";
?>
Задача 14. Дан массив символов s0,..sn-1. Напечатать true, если в заданном массиве буква а встречается чаще, чем буква b, и напечатать false в противоположном случае.
<?php
$s="aaaaaaaaaaabrtbbdsabfabbresbbgadbabbab";
$count_a=0;
$count_b=0;
$n=strlen($s);
for($i=0;$i<$n;$i++)
if($s[$i]=='a')
$count_a++;
else if($s[$i]=='b')
$count_b++;
echo ($count_a>$count_b)?"true":"false";
?>
Задача 15. Даны действительные числа а0,...,а15. Получить мin(а0*а8, а1*а9, ..., а7*а15).
<?php
$N=16;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(0,99),"<br>";
$n=$N/2;
$min=$x[0]*$x[$n];
echo "x[0]=",$x[0],"; x[",$n,"]=",$x[$n],"<br>";
for($i=1;$i<$n;$i++){
$r=$x[$i]*$x[$n+$i];
if($min>$r) $min=$r;
echo "x[",$i,"]=",$x[$i],"; x[",$n+$i,"]=",$x[$n+$i],"<br>";
}
echo "Min = $min<br>";
?>
Задача 16. Дан массив действительных чисел а0,...,аn-1. Выяснить, верно ли, что наибольший член данного массива по модулю больше единицы.
<?php
$N=16;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(-50,5)/50,"<br>";
$max=$x[0];
for($i=1;$i<$N;$i++)
if($max<$x[$i]) $max=$x[$i];
echo "Кимати мутлаки аъзои калонтарини массив ",abs($max)," аз 1 калон ",
(abs($max)>1)?"аст":"нест";
?>
Задача 17. Дан массив действительных чисел а0,...,аn-1. Найти минимальное значение элементов массива, принадлежащих интервалу (c1,c2) и заменить все элементы массива, находящиеся в интервале (c1,c2), на это число. Исходный и скорректированный массивы напечатать.
<?php
$N=20;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(-200,200)/100,"<br>";
$c1=-.2;
$c2=.2;
$fl=true;
$j=0;
for($i=0;$i<$N;$i++)
if($x[$i]>$c1 && $x[$i]<$c2) {
$k[$j++]=$i;
if($fl) {
$fl=false;
$min=$x[$i];
}
else if($min>$x[$i])
$min=$x[$i];
}
if($fl)
echo "Ягон аъзои массив дар интервали ($c1,$c2) вокеъ нест";
else {
$n=count($k);
for($i=0;$i<$n;$i++)
$x[$k[$i]]=$min;
echo "Аъзои хурдтарини массив аз интервали ($c1,$c2): $min<br>";
echo "Массиви нав:<br>";
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i],"<br>";
}
?>
Задача 18. Дан массив действительных чисел а0,...,аn-1. Определить месторасположение первого элемента данного массива, который больше 100. Этот и все последующие элементы разделить на 100. Исходный и скорректированный массивы напечатать.
<?php
$N=10;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(0,110),"<br>";
$i=0;
while($i<$N && $x[$i]<=100)
$i++;
if($i<$N) {
for($j=$i; $j<$N; $j++)
$x[$j]/=100;
echo "Массиви нав:<br>";
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i],"<br>";
}
?>
Задача 19. Дан массив целых чисел а0,...,аn-1. Найти в данной последовательности все пары (аi,аi+1), такие, что аi*аi+1 кратно 10.
<?php
$N=10;
for($i=0; $i<$N; $i++)
echo $i,"| ",$x[$i]=rand(-50,50),"<br>";
for($i=0; $i<$N-1; $i++) {
$r=$x[$i]*$x[$i+1];
if($r==10*(int)($r/10))
echo "x[",$i,"]=",$x[$i]," x[",$i+1,"]=",$x[$i+1],"<br>";
}
?>
Задача 20. Даны целые числа а0,...,а15. Получить новый массив по правилу (а0+а8, а1+а9, ..., а7+а15). Найти минимальный элемент полученного массива.
<?php
$N=16;
for($i=0; $i<$N; $i++)
echo $i," | ",$x[$i]=rand(0,99),"<br>";
$n=$N/2;
$min=($b[0]=$x[0]+$x[$n]);
echo "Массиви нав:<br>";
echo "b[0]=",$b[$i],"<br>";
for($i=1;$i<$n;$i++){
$r=$x[$i]+$x[$n+$i]
$b[$i]=$r;
if($min>$r) $min=$r;
echo "b[",$i,"]=",$b[$i],"<br>";
}
echo "Min = $min<br>";
?>