Пройденный путь = |S-(T*(u1+u2))|
На паскале
var u1,u2,S,T,P:integer;
begin
Readln(u1,u2,S,T);
P:=Abs(S-((u1+u2)*T));
Writeln('Растояние между ними через T часов = ',P);
end.
Прикладываю исходник и скрин в приложении к ответу.
<u><em>Несколько замечаний:
</em></u><em />1. <em />Большое количество комментариев внесено в код исключительно в учебных целях. В реальную программу переносить не рекомендуется - признак нехорошего тона.
2. У вас допущены синтаксические ошибки в двух последних циклах, а точнее - в операторах If, в которых стоит три условия (объединённых and), но нет ключевого слова "then" и последующих инструкций. Исправил.
3. Так же, автор вашей программы построил на мой взгляд нелогичную структуру алгоритма. Переменные min, min2 и min3, как я догадался, должны хранить три минимальных значения массива.
А вот что происходит в вашей конструкции: первый цикл безошибочно находит наименьший элемент и записывает его в min, а последующие два цикла записывают в min2 и min3 первые попавшиеся(начиная с первого) элементы, если они больше min. Таким образом, нет никакой закономерности в том, что попадёт в эти переменные и сложно представить, для какой задачи потребовались бы такие случайности.
Одним из вариантов решения предлагаю изначально записывать в эти три переменные не значение первого элемента массива, а какое-то большое число, которое в массиве нам не встретится (например 100). Тогда цикл будет искать значения меньше 100 и перезаписывать им соответствующую переменную, пока не найдёт самое маленькое значение. В таком случае не очень стабильная переменная j нам так же не нужна, я её вычеркнул.
Вам отсылаю уже с учётом поправок, однако если вам требовалась <u><em>именно первоначальная версия</em></u> несмотря на её минусы, просто поправьте синтаксис в последних циклах (41 и 34 строчка на скрине) и пользуйтесь ей.
Program gt;
var n,i,j:integer;
a:array[1..100,1..100]of real;
s:real;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
read(a[i,j]);
if(i=j)then s:=s+a[i,j];
end;
writeln(s);
end.
Задача1
массив определи как array[];
чтобы посчитать, просто используй счетчик, но сначала инициализируй переменную, которая содержит ответ задачи:
int n;
array [n];
int answer;
for (i=0, i < n, i++)
{
if (array[i] == 2)
answer++;
}
std::cout<<answer;
Как то так
Задача2
array[n];
for (int i =1, i < n, i++)
{
if (array[0] >= array[i])
array[0] = array[i];
}
std::cout << array[0];
//Это было решение первого пункта
int first;
int last
bool positive;
while (positive == false )
{
for (int i = 0; i < n; i++)
{
if (array[i] > 0)
{
positive = true;
first = i;
array[i] = -1;
}
}
while (positive == false )
{
for (int i = 0, i < n, i++)
{
if (array[i] > 0)
{
positive = true;
last = i;
}
}
int summ
for (int i = first, i < last, i++)
{
summ += array[i];
}
std::cout<<summ; // Ответ на 2 пункт
// ПРеобразую
newarray [n];
int a = 0;
for (int i = 0, i < n, i++)
{
if (array[i] == 0)
{
newarray[a] = array[i];
a++;
}
}
for (int i = 0, i < n, i++)
{
if (array[i] != 0)
{
newarray[a] = array[i];
a++;
}
}
std::cout<< newarray;
Ресурсы человеческого мозга рассчитаны на переработку информации в 16 бит