Turbo Pascal. 4 арифметические задачи

Student1988
Сообщения: 5
Зарегистрирован: 28 дек 2008, 09:22

:( я студент учусь на ВТ учусь хорошо! но я никак не могу понять поскаль помогите решить 4 задачки они (для вас покажутся простыми а я технологию пойму вот задачки

1)Даны действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее —их удвоенным произведением.
2)Найти сумму всех n-значных чисел, кратных k (1 < п < 4).>>>>поясню здесь речь идет о числах 10....до 999
3)Составить программу для нахождения наибольшего общего делителя четырех натуральных чисел.
4) Составить программу, определяющую, в каком из данных двух чисел больше цифр.
ПОМОГИТЕЕЕЕЕ
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

тех кто хорошо учится не отчисляют изза одного предмета )))))))))))))))))))
1

Код: Выделить всё

program test;
var
x,y,t1,t2: real;
begin
writeln('vvedite x');
readln(x);
writeln('vvedite y');
readln(y);
t1:=(x+y)/2;
t2:=2*x*y;
if x>y then
begin
x:=t2;
y:=t1;
end
else
begin
x:=t1;
y:=t2;
end;
writeln('x= ',x);
writeln('y= ',y);
readln;
end.
2

Код: Выделить всё

program summa;
var
summ,k,i : integer;
begin
writeln('vvedite k');
readln(k);
summ:=0;
for i:=10 to 999 do
if (i mod k)=0 then
summ:=summ+i;
writeln('summa= ',summ);
readln;
end. 
3
http://plagiata.net.ru/?p=273
4

Код: Выделить всё

program kolichestvo;

functon col(a: integer):integer;
var
t: integer;
r: real;
begin
r:=a;
t:=0;
while r > 0 do
begin
r:=r/10;
t:=t+1
end;
col:=t;
end;

var
a,b: integer;
begin
writeln('vvedite pervoe chislo');
readln(a);
writeln('vvedite vtoroe chislo');
readln(b);
if col(a)>col(b) then
writeln('v pervom chisle bolshe cifr chem vo vtorom');
if col(a)<col(b) then
writeln('vo vtorom chisle bolshe cifr chem v pervom ');
if col(a)=col(b) then
writeln('kolichestvo cifr odinakovo);
end.
ака хинт: коментируйте код, самим же легче будет разобраться ;)
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

1) половина суммы: 0,5* (x+y)
удвоенное произведение 2*х*у

Код: Выделить всё

if (x-y)<0 then begin x:=0,5* (x+y); y:=2*х*у end
else begin y:=0,5* (x+y); x:=2*х*у end;
2)

Код: Выделить всё

for i:=10 to 999 do 
  if i mod k=o then s:=s+i
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

№4 решается значительно проще
if a/b>=10 then цифр в а больше, чем в b
else if a/b<=0.1 then наоборот
else цифр одинаково.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

не догадался))
возьму на заметку
ака хинт: коментируйте код, самим же легче будет разобраться ;)
ge4r
Сообщения: 13
Зарегистрирован: 19 янв 2009, 12:28

4ую еще можно решить строками)
if length (str(a))>length(str(b)) then в а больше
else if length (str(a))>length(str(b)) then в а меньше
else поровну
Student1988
Сообщения: 5
Зарегистрирован: 28 дек 2008, 09:22

СПАСИБОООООООООООООООООООООООООООО :) что мне помогли буду внимательнее к изучению языку до скорого :D
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

ge4r, можно и так, только в Паскале str - это процедура, а не функция (ужасно неудобно).
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):

Код: Выделить всё

program summa;
var
summ,k,i : integer;
begin
writeln('vvedite k');
readln(k);
summ:=0;
for i:=10 to 999 do
if (i mod k)=0 then
summ:=summ+i;
writeln('summa= ',summ);
readln;
end.
Неправильно. В задаче n - переменная, а здесь - константа. Правильно:

Код: Выделить всё

program summa;
var
summ,k,i,n,max : integer;
begin
writeln('vvedite k');
readln(k);
writeln('vvedite n');
readln(n);
max:=round(exp((n+1)*ln(10)))-1;
summ:=0;
for i:=10 to max do
if (i mod k)=0 then
summ:=summ+i;
writeln('summa= ',summ);
readln;
end.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Troi
Сообщения: 4
Зарегистрирован: 11 фев 2009, 18:28

Student1988 писал(а): :( я студент учусь на ВТ учусь хорошо! но я никак не могу понять поскаль помогите решить 4 задачки они (для вас покажутся простыми а я технологию пойму вот задачки
ПОМОГИТЕЕЕЕЕ


У меня почти такая же ситуация. Для меня паскаль как темный лес и из за него я никак не могу сдать зачет. Помогите пожалуйста решить задачи в Pascal'е:

1) Ввести несколько предложений и выбрать из них цитаты, т.е. предложения, заключеные в ковычки.
2) Уплотнить матрицу, удаляя из нее строки и столбцы, заполненные нулями.
3) Вычислить :
a)Колличество элементов больших, больших C;
b)Сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Преобразовать массив таким образом, чтобы элементы лежащие в интервале [a, b] располагались в конце массива.
4) составить программу вычисления суммы ряда с заданой точностью e=0.001.
E(n-1/(n+1)(n+1))
E - знак суммы ряда (несмог найти на клавиатуре знак суммы поэтому ввел что-то похожее на него)
a) составить програму с параметром
b) составить програму с постусловием
с) составить програму с предусловием
Закрыто