1) Все правильно, это и будет разность между максимумом и минимумом program one; var input,max,min:integer; i:integer; begin readln(input); max:=input; min:=input; for i:=2 to 25 do begin readln(input); if input>max then max:=input; if input<min then min:=input; end; writeln(max-min); end.
2) Гораздо проще не суммировать в цикле степени половины, а воспользоваться тем, что . program two; var res:real; i,n:integer; begin readln(n); res:=0.5; for i:=2 to n do res*=0.5; res:=2-res; writeln(res); end.
3) Здесь существует несколько реализации; в частности, можно было просто считать число как строку и возвратить ее в перевернутом виде (ReverseString(s)), не заботясь о переполнении, однако я решил, что по логике задания нужно делать через числа. Впрочем, для выявления случаев переполнения все равно используется переворот строки program three; var a,b:int64; {можно использовать uint64, если в вашей среде Паскаля этот тип поддерживается, тогда число в строке ниже надо заменить} begin readln(a); if ReverseString(IntToStr(a))>'9223372036854775807' then writeln('Слишком много') else begin while a>0 do begin b:=10*b+a mod 10; a:=a div 10; end; writeln(b); end; end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Выполнить табулирование функции y=sin2x+2, на отрезке [-2; 2] с шагом (0, 5) с использованием (пока) и (до в паскале.
#include <iostream>
#define tsar c++
using namespace std;
int segfault() {
int* ptr; ptr = 0;
return *ptr;
}
int main() {
unsigned int n; cin >> n;
unsigned int m; cin >> m;
auto array = new int*[n];
for (size_t idx = 0; idx < n; idx++) {
array[idx] = new int[m];
for (size_t idy = 0; idy < m; idy++)
cin >> array[idx][idy];
}
unsigned int a; cin >> a;
unsigned int b; cin >> b;
int res = 0;
for (size_t idx = a - 1; idx < b; idx++) {
for (size_t idy = 0; idy < m; idy++)
res += array[idx][idy];
}
cout << res;
delete array;
}
Объяснение: