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

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

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

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

Нужна помощь с Pascale-м

  • Автор темы Автор темы novol
  • Дата начала Дата начала

novol

Ученик
Регистрация
12 Дек 2007
Сообщения
1
Реакции
0
Баллы
0
Ребята нужна помощь с паскалем 5 задачек,я просто ниче в паскале не понимаю а если не сдам то мне пипец.


1)задано натуральное n составить программу с помощью которой найдите произведение первых и сомножителй: 1*4*9*16*25*36*........

2)написать программу которая определяет максимальное число из введеной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена) для завершения ввода последовательности ввести ноль.

3)составить программу вычисляющую сумму 1/8-4/27+9/64-16/125+25/216-..............с точностью Е=10 в минус 3 степени

4) задана строка символов и букв составте программу с помощью которой замените каждую точку восклицательным знаком а заданную букву - пробелом


5) ученик хочет вычислить средний балл своего аттестата и сравнить его со средним баллом аттестата отца и матери составить программу с помощьюкоторой определите может ли ученик считать что он окончил школу не хуже родителей.

Пожалуйста народ это надо сделать очень срочно
 
1 задача.
program calc;
var
n,i,p: integer;
begin
p:=1;
readln(n);
for i:=1 to n do
p:=p*sqr(i);
writeln('произведение =',p);
end.
 
3 задача. Из условия задачи видно, что дана знакопеременная функция вида (-1)^(n+1)*(n^2)/((n+1)^3). Так как последовательность бесконечная, то мы должны ввести какое-либо число n.

program calc;
var
n,i: integer;
s: real;
begin
s:=0;
readln(n);
for i:=1 to n do
if i/2=round(i/2) then s:=s-1*sqr(i)/(sqr(i)*i) else s:=s+sqr(i)/(sqr(i)*i);
writeln('сумма =',s:0:3);
end.
 
Для остального привожу только описания :).
2 задача: все введенные числа помещаете в динамический массив, затем в чикле считываете значения и находите наибольшее.
4 задача: используйте операторы из библиотеки crt.
5 задача: вводите оценки родителя, суммируете и считаете среднее значение, затем вводите свои оценки, считаете и сравниваете полученные средние баллы.
 
задача 2.

var
a, max:longint;
begin
mas:=-1;
a:=-1;
while a<>0 do begin
read(a);
if a = 0 then break;
if a>max then max:=a;
end;
writeln(max);
end.
 
задача 4

var
stroka:string;
symbol:char;
a:byte;
begin
read(stroka);
readln;
read(symbol);
for a:=1 to Length(stroka) do begin
if stroka[a]='.' then stroka[a]:='!';
if stroka[a]=symbol then stroka[a]:=' ';
end;
writeln(stroka);
end.
 
очень нужно решение этой задачи в паскале помогите пожалуйста: в спортивной лотерее требуется угадать 3 номера. для имеющихся результатов розыгрыша лотереи и известных ответов каждого участника лотереи определить, сколько человек угадали все 3 номере, 2 номера , 1 номер и сколько человек не гадали ни одного номера. каждый участник указывает только 1 вариант прогноза.
исходными данными считать список из 3 выпавших номеров, число участников и списки номеров каждого участника
 
Clever person =), вот код твоеи програмы:
Код:
var
 mas:array[1..3]of byte; 
 kil,k,i, j,z, ch:byte;
 g1, g2, g3, g0:byte;
begin
g0:=0; g1:=0; g2:=0; g3:=0;

for i:=1 to 3 do begin
    read(mas[i]);
end;

read(kil);

for i:=1 to kil do begin
k:=0;
    for j:=1 to 3 do begin
        read(ch);
        for z:=1 to 3 do begin
        if ch=mas[z]then begin k:=k+1; break; end;
        end;
    end;
if k=0 then g0:=g0+1 else
   if k=1 then g1:=g1+1 else
      if k=2 then g2:=g2+1 else
         if k=3 then g3:=g3+1;
end;

writeln(g0,' ',g1,' ',g2,' ',g3);
end.
 
пожалуйста помогите решить еще одну задачу: задан массив действительных чисел, содержащих 40 элементов. вычислить сумму четных элементов массива , произведение нечетных и кол-во элементов, которые не являются ни четными ни нечетными. по ошибке решила эту задачу с целыми числами, теперь не знаю как решать с действительными. прошу помогите!!!
 
Код нужной тебе проги ...
Код:
var
 i, j, a:integer;
 c:real;
 sum, dob, kil:longint;
begin
sum:=0; dob:=1; kil:=0;

read(i);

for j:=1 to i do begin
      read(c);
  if (c = 0)or(frac(c)<>0)then kil:=kil+1 else
  begin
  a:=trunc(c);
      if a mod 2 = 0  then sum:=sum+a else
         if (a mod 2 <> 0) then dob:=dob*a;
  end;
end;
writeln('sum=',sum,'; dob=',dob,'; else=',kil);
end.
 
TOMMY вы гений СПАСИБО ВАМ БОЛЬШОЕ!!!
 
я ,конечно , понимаю что посылать третью задачу - это наглость ,но все же помогите еще разочек, пожалуйста: Задан массив действительных чисел . построить новый массив,в который поместить все элементы исходного,оканчивающиеся на цифру 5. ПОЖАЛУЙСТА!!!
 
Мы все немного наглые ;)
_________________________
Код:
var
 mas:array[1..1000]of real;
 new_mas:array[1..1000]of real;
 i, j, z:integer;
function RESULT(a:real):boolean;
begin
while frac(a)>0 do begin
a:=a*10;
end;
if trunc(a) mod 10 = 5 then RESULT:=true else RESULT:=false;
end;

begin
read(i);

for j:=1 to i do begin
     read(mas[j]);
end;

z:=1;
for j:=1 to i do begin
    if RESULT(mas[j])=true then begin
       new_mas[z]:=mas[j];
       z:=z+1;
    end;
end;

writeln;
for j:=1 to z-1 do begin
 write(new_mas[j]:5:3,' ');
end;
end.
 
TOMMY вы еще в первой задаче ввели оператор break но мой паскаль его не поддерживает помогите переделать пожалуйста!!!
 
бугалтерия учреждения подготовила ведомость зарплаты сотрудников, в которой указаны фамилии сотрудников и зарплата каждого. отдельный сотрудник упомянут в ведомости один раз. найти сотрудников с наименьшей и наибольшей зарплатой. у меня получилось вот что, но это неправильно помогите исправить!!!
Program Zplata;
uses wincrt;
var
b:array[1..10] of real;
k,j,i,n:integer;
Amin,max:real;
a: String[20];
begin
write ('n=');
readln(n);
for i:=1 to n do begin
write('a[',i,']=');
readln(a); end;
for i:=1 to n do begin
write('b[',i,']=');
readln(b); end;

Amin:=b[1];
max:=b[1];
for i:=1 to n do begin
if b<Amin then begin Amin:=b;j:=i; end;
if b>max then begin max:=b;k:=i;end;
end;
WriteLn('min=',Amin,'---',' ',a[j]);
writeln ('max=',max,'---',' ',a[k]);
end.
 
clever person
Какая версия Pascal у вас?

Привожу решение для DOS-версии, под Win-версию переделаете сами.
Допустим, что в ведомости 10 фамилий, как в вашей программе.

Program Zplata;
uses crt;
var
a: array[1..10] of string; {массив фамилий}
b:array[1..10] of real; {массив зарплата}
i,n,k:integer;
min,max:real;

begin
clrscr;
for i:=1 to 10 do begin {цикл заполнения массивов}
write('Введите фамилию сотрудника');
readln(a);
write('Введите з/п сотрудника');
readln(b);
end;

min:=b[1];
max:=b[1];

for i:=1 to 10 do
begin
if b<min then
begin min:=b; n:=i; end;
if b>max then
begin max:=b; k:=i; end;
end;

writeln('min=',min,'--- ',a[n]);
writeln ('max=',max,'--- ',a[k]);
end.

Ваша ошибка в том, что вы никак не определили массив фамилий, переменная а у вас строковая, а не статический массив. И еще, не понятно, зачем вы запрашиваете n, если у вас объявлен массив зарплат из 10 элементов. Зарплату же должны начислять всем сотрудникам :)

* причина редактирования - исправлено начальное значение параметра цикла
 
просто число сотрудников неизвестно, а так я тоже делала , но фамилии сотрудников не выводятся вот в чем проблема
writeln('min=',min,'--- ',' ',a[n]);
writeln ('max=',max,'--- ',' ',a[k]); вот так
 
AlexZir написал(а):
a: array[1..10] of string; {массив фамилий}
Вообще-то я имел в виду вот это :).

А зачем вам отдельно выводить пустой символ?
 
мне нужно чтобы фамилия выводилась а она не выводится вот в чем еще проблема
 
Назад
Сверху