• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Необходимо написать программу

Chelios_rus

Новые
Регистрация
13 Дек 2013
Сообщения
21
Реакции
0
Баллы
0
Необходимо написать программу

Вот задание:
Найти, есть ли в последовательности чисел, вводимых с клавиатуры, три одинаковых числа, следующих подряд. Признак завершения ввода: первое число встретилось три раза.
 
какой язык программирования ?:telepat:

Если паскаль, то
program _numbs;

var

N, count :integer;
N_prev, exit_count :integer;

BEGIN

{input & process. }
while exit_count < 3 do
begin
Write('N: ');Readln(N);
if not (odd(N)) then inc(count);
if N=N_prev then inc(exit_count)
else exit_count:=1;
N_prev:=N;
end;

{ output }
write('количество четных: ',count);

END.
 
да паскаль, спасибо большое))
 
не за что, разбирайтесь.
 
извините, а разве в задании просят что бы программа искала количество четных чисел?
там другое задание, или я чего то не понял
 
Да, прошу прощения, ошибся немного, ну если можете, сами доделаете. Прям вашего задания у меня не оказалось.

Есть вот такая программа: Дан одномерный массив из 10 целых чисел подсчитать наибольшее число одинаковых идущих подряд в нем чисел.
uses crt;
const n=10;
var a:array[1..n] of integer;
i,j,k,mx,imx:byte;
begin
clrscr;
randomize;
writeln('Введите ',n,' целых чисел, в том числе одинаковые подряд:');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a);
end;
clrscr;
writeln('Массив:');
for i:=1 to n do
write(a,' ');
writeln;
i:=2;mx:=0;imx:=0;
while i<=n do
if a=a[i-1] then
begin
j:=i;k:=1;
while (a[j]=a[j-1])and(j<n) do
begin
j:=j+1;
k:=k+1;
end;
if k>mx then
begin
mx:=k;
imx:=i-1;
end;
i:=i+k;
end
else i:=i+1;
if mx=0 then write('Нет одинаковых рядом!')
else
begin
writeln('Максимальная последовательность одинаковых чисел=',mx);
for i:=imx to imx+mx-1 do
write(a,' ');
end;
readln
end.
 
хорошо сам исправлю, а вот на подобие этой программы, у меня есть тоже задание:
Даны внешние и внутренние радиусы двух колец, центры которых находятся в начале координат. Даны координаты десяти точек. В какое из колец попадет больше точек?
по заданию конечно отличается, но принцип написания программы примерно такой же, можете ли вы с этой помочь?
 
Могу и с этой помочь=) совсем вы люди обленились, а ведь у меня тоже сессия =)
на держи программу:
uses crt;
const n=10;
type point=record
x,y:real;
end;
mas=array[1..n] of point;
function Rasst(t:point):real;
begin
Rasst:=sqrt(sqr(t.x)+sqr(t.y));
end;
function Count(r1,r2:real;t:mas):integer;
var k,i:integer;
begin
k:=0;
for i:=1 to n do
if (Rasst(t)>=r1*r1)and(Rasst(t)<=r2*r2) then inc(k);
Count:=k;
end;
procedure Vvod(var r1,r2:real;k:integer);
begin
repeat
writeln('Введите внутренний и внешний радиусы кольца ',k);
readln(r1,r2);
until(r1>0)and(r2>r1);
end;
var vn1,vs1,vn2,vs2:real;
a:mas;
i,k1,k2:integer;
begin
clrscr;
writeln('Введите координаты ',n,' точек');
for i:=1 to n do
begin
writeln('Точка ',i);
write('x=');readln(a.x);
write('y=');readln(a.y);
end;
clrscr;
writeln('Координаты точек:');
write(' ');
for i:=1 to n do
write(i:6);
writeln;
write('X:');
for i:=1 to n do
write(a.x:6:2);
writeln;
write('Y:');
for i:=1 to n do
write(a.y:6:2);
writeln;
writeln;
Vvod(vn1,vs1,1);
Vvod(vn2,vs2,2);
k1:=Count(vn1,vs1,a);
k2:=Count(vn2,vs2,a);
writeln('Количество точек в кольце 1=',k1);
writeln('Количество точек в кольце 2=',k2);
if k1>k2 then write('В кольце 1 больше')
else if k1<k2 then write('В кольце 2 больше')
else write('Количество точек в кольцах равное');
readln
end.
 
огромное просто тебе человеческое спасибо, удачи сдать сессию)
 
Назад
Сверху