Нужно решение
1.В программе описан одномерный целочисленный массив A с индексами от 1 до 10. Ниже представлен фрагмент программы, записанный на языке программирования Паскаль, в котором значения элементов сначала задаются, а затем меняются. Сколько элементов массива будут четными? (Решение представить в виде таблицы трассировки.)
for i:=1 to 10 do
A[i]:=10-i;
for i:=1 to 8 do
А[i+2]:=A[i]+A[i+2];
2.. Дана программа на языке программирования Паскаль.
var s,t: integer;
begin
readln(s);
readln(t);
if (s < 10) or (t < 10)
then writeln('ДА')
else writeln('НЕТ')
end.
Было проведено 9 запусков этой программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5)
Сколько было запусков, при которых программа напечатала «НЕТ»? Перечислите эти запуски.
3.Файл размером 68 Кбайт передаётся через некоторое соединение со скоростью 1024 бит в секунду. Определите размер файла в Кбайтах, который можно передать за то же время через другое соединение со скоростью 256 бит в секунду.
ответ: в бутылке минеральная вода, в кружке чай, в чашке молоко, в стакане кофе, в кувшине квас.
open System
let anyNumberSymbol = "?"
let replaceSymbolOnIndex (str:string) (number:int) (index:int) =
String.Format("{0}{1}{2}", str.Substring(0, index), number, str.Substring(index+1))
let rec getAllValues (valueStr:string) =
let index = valueStr.IndexOf(anyNumberSymbol)
if index > -1
then
let newStrings =
[0..9]
|> Seq.map (fun x -> replaceSymbolOnIndex valueStr x index)
newStrings |> Seq.collect (fun x -> getAllValues x)
else
[valueStr] |> List.toSeq
let getResults (numbers:string list) =
List.nth numbers 0
|> getAllValues
|> Seq.map (fun firstNumber ->
List.nth numbers 1
|> getAllValues
|> Seq.map (fun secondNumber ->
List.nth numbers 2
|> getAllValues
|> Seq.map (fun resultNumber ->
if Int32.Parse(firstNumber) + Int32.Parse(secondNumber) = Int32.Parse(resultNumber)
then [String.Format("{0} + {1} = {2}", firstNumber, secondNumber, resultNumber)]
else []
)
|> Seq.collect (fun x -> x)
)
|> Seq.collect (fun x -> x)
)
|> Seq.collect (fun x -> x)
|> Seq.toArray
[<EntryPoint>]
let main argv =
let inputString = System.Console.ReadLine()
let numbers = inputString.Split('+', '=') |> Array.map (fun x -> x.Trim())
if numbers.Length = 3
then
let results = getResults (numbers |> Array.toList)
if results.Length > 0
then Console.WriteLine(results |> Seq.fold (fun result x -> result + "\n" + x) "")
else Console.WriteLine("No results")
Console.ReadKey(true) |> ignore
0
else
1