Программа на паскальодномерный массив заполнен случайными числами от -20 до 15. необходимо составить программу, которая будет выводить массив таким образом, что на всех чётных позициях положительные числа, на всех нечётных – отрицательные.
Var ar:array[1..n] of integer; ar2:array[1..n] of integer; i,k:integer;
function prost(a:integer):boolean; var i:integer; b:boolean; begin b:=true; for i:=2 to a div 2 do if a mod i=0 then begin; b:=false; break; end; if a=1 then b:=false; prost:=b; end;
begin; randomize; k:=0; for i:=1 to n do begin; ar[i]:=random(101); write(ar[i]:4); end; writeln; for i:=1 to n do if prost(ar[i]) then begin; inc(k); ar2[k]:=ar[i]; write(ar2[k]:4); end; end.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string w;
int b;
string arr;
getline(cin,w);
cin>>b;
cin.ignore();
getline(cin,arr);
if(w == "szyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])+b>122) arr[i]-=26;
arr[i]+=b;
}
else
{
if(int (arr[i])+b>90) arr[i]-=26;
arr[i]+=b;
}
}
}
}
if(w == "odszyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])-b<97) arr[i]+=26;
arr[i]-=b;
}
else
{
if(int (arr[i])-b<65) arr[i]+=26;
arr[i]-=b;
}
}
}
}
cout<<arr;
return 0;
}
Объяснение:
код на с++ для примера
пункт со сдвигом букв сам сделаешь
P. S. у меня на 5 они сдвигаются,
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
b:=true;
for i:=2 to a div 2 do
if a mod i=0 then
begin;
b:=false;
break;
end;
if a=1 then b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(101);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.