Консультация № 144937
24.09.2008, 21:22
0.00 руб.
0 2 1
Здравствуйте! Помогите пожалуйста решить следующие задачи:

Написать программу вычисления стоимости некоторого количества (по весу) яблок.

Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень – отрицательные.

Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.

Найти самую большую цифру целого числа.

Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М.

Вычислить сумму и количество положительных элементов массива расположенных в четных строках.

Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.

Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.

Построить массив записей о рабочих завода. Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер заработной платы за месяц. Рассчитать для каждого рабочего размер отпускных из расчета зар.плата*0.75.

Спасибо!

Обсуждение

Неизвестный
24.09.2008, 23:07
общий
Код:

program e1;
var a,b:real;
begin
write('Цена за килограмм: ');
readln(a);
write('Вес: ');
readln(b);
write('Общая стоимость: ', a*b:3:2);
readln;
end.

Код:

program e2;
var a,b,c:real;
begin
write('a: ');
readln(a);
write('b: ');
readln(b);
write('c: ');
readln(c);
if a=0 then writeln('Число a равняется нулю') else if a>0 then writeln(a*a*a) else writeln(a*a*a*a);
if b=0 then writeln('Число b равняется нулю') else if b>0 then writeln(a*a*a) else writeln(a*a*a*a);
if c=0 then writeln('Число c равняется нулю') else if c>0 then writeln(a*a*a) else writeln(a*a*a*a);
readln
end.
давно
Профессор
401888
1232
25.09.2008, 08:14
общий
это ответ
Здравствуйте, Polmer12!
Решение задач №№ 4,6,7,8,9 с пояснениями в приложении.
По задаче №7. Поскольку мы не знаем формат текста, который будет введен, предусмотрим форматирование его к удобному для поиска виду, а именно представим текст как чередование слов и одиночных пробелов(начинается строка словом, заканчивается пробелом).


Приложение:
4.Найти самую большую цифру целого числа.
uses crt;
var n:longint;
i,max:byte;
begin
clrscr;
write('n=');readln(n);{вводим число}
max:=0;
while n>0 do
begin
i:=n mod 10; {отделяем последнюю цифру}
if i>max then max:=i; {сравниваем с максимальной}
n:=n div 10; {берем число без последней цифры и все повторяем, пока число не кончится}
end;
write('Max cifra=',max);
readln
end.
6.Вычислить сумму и количество положительных элементов массива расположенных в четных строках.
uses crt;
const n=6;
m=7;
var a:array[1..n,1..m]of integer;
i,j,k,sum:integer;
begin
clrscr;
randomize;
writeln('Matrica:'); {заполняем и выводим матрицу}
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(10)-4;
write(a[i,j]:4);
end;
writeln;
end;
k:=0;sum:=0;
for i:=1 to n do
for j:=1 to m do
{если строка нечетная + число положительное, то}
if (i mod 2=0)and(a[i,j]>0) then
begin
inc(k); {считаем его}
inc(sum,a[i,j]); {увеличиваем сумму на это число}
end;
write('Sum=',sum,' k=',k);
readln
end.

7.Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
uses crt;
const rzd=[',',';',':','!','?','.'];{множество разделителей}
var s,ss:string; {данная и вспомогательная строки}
k,i,j:integer; {счетчики}
s1: array[1..250] of string; {массив слов}
begin
clrscr;
write('s = ');
readln(s);
s :=s + ' '; {добавим в конец пробел, как признак конца слова}
for i:=length(s) downto 1 do
begin
if s[i] in rzd then s[i]:=' ';{заменим разделители на пробелы}
while pos(' ',s)>0 do {если сподряд два пробела}
delete(s,pos(' ',s),1); {один удаляем}
end;
k := 0;ss:='';
while pos(' ',s)>0 do {пока в строке есть пробелы}
begin
ss:=copy(s,1,pos(' ',s)-1); {копируем очередное слово}
if length(ss)=3 then {если оно из трех букв}
begin
inc(k); {то увеличиваем счетчик}
s1[k]:=ss; {и включаем это слово в массив}
end;
delete(s,1,pos(' ',s)); {удаляем очередное слово}
end;
for i:=1 to k do
begin
d:=1;
for j:=1 to k do
if (s1[i]=s1[j])and(i<>j) then {если есть такое же слово на лругой позиции}
begin
inc(d); {увеличиваем счетчик}
s1[j]:=''; {присваиваем элементу массива пувтую строку}
end;
if s1[i]<>'' then {если не пустая строка}
writeln('Slovo ',s1[i],' vstr ',d, ' rz'); {то выводим результат поиска}
end;
if k=0 then writeln ('Takih slov net!'); {если массив пустой, выводим сообщение}
readln
end.

8.Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
uses crt;
var x1,y1,x2,y2,x3,y3,x4,y4,P:real;
i:byte;
function Dlina(a1,b1,a2,b2:real):real;{функция для определения длины отрезка}
begin
Dlina:=sqrt(sqr(a1-a2)+sqr(b1-b2));
end;
begin
clrscr;
writeln('Введите координаты вершин по часовой стрелке:');
repeat
write('x1=');readln(x1);
write('y1=');readln(y1);
write('x2=');readln(x2);
write('y2=');readln(y2);
write('x3=');readln(x3);
write('y3=');readln(y3);
write('x4=');readln(x4);
write('y4=');readln(y4);
until (((x1<x2)and(x4<x3))or((x1>x2)and(x4>x3))or((x1=x2)and(x4=x3)))
{проверяем правильность ввода по часовой стрелке}
and (Dlina(x1,y1,x3,y3)=Dlina(x2,y2,x4,y4));
{если длины диагоналей равны, то прямоугольник}
P:=2*(Dlina(x1,y1,x2,y2)+Dlina(x2,y2,x3,y3));{считаем периметр}
Writeln('Периметр прямоугольника = ',P:0:2);
readln
end.
9.Построить массив записей о рабочих завода. Каждая запись содержит поля – фамилия рабочего, наименование цеха, размер заработной платы за месяц. Рассчитать для каждого рабочего размер отпускных из расчета зар.плата*0.75.
uses crt;
type Trab=record {тип запись с полями по условию}
fame:string[20];
ceh:string[20];
zpl:word;
otp:real;
end;
var sp:array [1..100]of Trab; {массив записей}
n,i:integer;
begin
clrscr;
write('Количество рабочих n=');
readln(n);
for i:=1 to n do {Создаем список}
begin
writeln('Рабочий ',i);
write('Фамилия: ');readln(sp[i].fame);
write('Цех: ');readln(sp[i].ceh);
write('Зарплата : ');readln(sp[i].zpl);
sp[i].otp:=sp[i].zpl*0.75;
end;
clrscr;
writeln('Размер отпускных: '); {выводим результат на экран}
writeln;
write('Фамилия');
gotoXY(18,3); {устанавливаем курсор в позицию 18(слева) строки № 3}
write('Цех');
gotoXY(30,3);
writeln('Отпускные');
writeln;
for i:=1 to n do
begin
write(sp[i].fame);
gotoXY(15,4+i); { устанавливаем курсор в позицию 15(слева)в строки начиная с пятой}
write(sp[i].ceh);
gotoXY(32,4+i);
write(sp[i].otp:0:2);
writeln;
end;
readln
end.
Форма ответа