Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2009, 23:44   #1
Herenvarno
 
Аватар для Herenvarno
 
Регистрация: 21.01.2009
Сообщений: 8
Восклицание Несложные задачи на Паскале.Вычислительные операции,цикл,ветвление,массивы.

1.Документ Microsoft Word (2).docВычислить значения.(как можно 81 градус в квадрат возвести? в радианы перевести что ли ... )
Посоветуйте какой-нибудь ресурс или книгу с описанием математических функций и синтаксических диаграмм в Паскале.

2. Если три данных числа могут являться сторонами равностороннего треугольника, то найти его площадь по формуле Герона.

3.Вводится последовательность символов.Признак конца ввода - точка.Посчитать количество пробелов.

4. Переписать положительные элементы массива х, до последнего вхождения максимального элемента, в массив у упорядоченными по неубыванию (по возрастанию что ли?) и подсчитать их количество.(Указание: проверить массив х на наличие в нем положительных элементов.)

5. Дана квадратная матрица порядка n (n =5). Если все строки упорядочены по убыванию, то в элементы вектора х записать элементы строки, содержащей наименьшее количество отрицательных элементов, а иначе - наибольшее количество нулевых элементов.

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

Да прибудет с вами Вирт.

Последний раз редактировалось Herenvarno; 23.01.2009 в 00:02.
Herenvarno вне форума Ответить с цитированием
Старый 22.01.2009, 23:47   #2
paloit
Пользователь
 
Регистрация: 05.01.2009
Сообщений: 24
По умолчанию

362827711 - стучись, решим.
paloit вне форума Ответить с цитированием
Старый 23.01.2009, 00:35   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вторая:
Код:
uses crt;
var
a,b,c,S,p : real;
begin
clrscr;
write('Vvedite a: ');
readln(a);
write('Vvedite b: ');
readln(b);
write('Vvedite c: ');
readln(c);
s:=-1;
if (a=b) and (b=c) then
  begin
  p := (a+b+c)/2;
  S := sqrt(p*(p-a)*(p-b)*(p-c));
  end;
if s = -1 then writeln('Eto ne storony treugolnika')
else writeln('S= ',s:7:3);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 00:41   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Третья:
Код:
uses crt;
var
s : string;
i,k,n,len : integer;
begin
clrscr;
writeln('Vvedite stroku: ');
readln(s);
i:=1;
k:=1;
n := 0;
len := length(s);
repeat
i := pos(' ',copy(s,k,len-k+1));
if i <> 0 then inc(n);
k := k+i;
until i=0;
writeln('Kolichestvo probelov: ',n);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 01:11   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Четвертая:
Код:
uses crt;
const n = 10;
var
x,y : array[1..n] of integer;
i,j,k,maxi,tmp : integer;
begin
clrscr;
randomize;
for i:=1 to n do
  begin
  x[i] := random(30)-5;
  write(x[i]:4);
  end;
writeln;
writeln('----------');
{--poverka: est lio polozhitelnye. Zaodno ishem maximum }
k:=0;
maxi:=1;
for i:=1 to n do
  begin
  if x[i]<=0 then inc(k);
  if x[i]>=x[maxi] then maxi:=i;
  end;
if k = n then
  begin
  writeln('v massive x net polozhitelnyh elementov');
  readln;
  exit;
  end;
{--------}
k:=1;
for i:=1 to maxi do
  if x[i]>0 then
    begin
    y[k]:=x[i];
    inc(k);
    end;
dec(k);
for i:=1 to k-1 do
  begin
  maxi := i;
  for j:=i+1 to k do
   if y[j]<y[maxi] then maxi := j;
  tmp := y[maxi];
  y[maxi] := y[i];
  y[i] := tmp;
  end;
 {--------}
writeln('Massiv y (vsego ',k,' elementov)');
for i:=1 to k do
 write(y[i]:4);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 01:46   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Пятая:
Заполняется случайными (явно будет не по убыванию)
Там закомменчен кусок для проверки (чтоб было по убыванию)
Код:
uses crt;
const n=5;
type matrix = array[1..n,1..n] of integer;
var
matr : matrix;
i,j,primer : integer;
x : array[1..n] of integer;

function poubyv(a : matrix) : boolean;  { функция проверяет, заполнены ли строки по убыванию}
 var pi,pj : integer;
 begin
 for pi:=1 to n do
   for pj:=2 to n do
     if a[pi,pj]>a[pi,pj-1] then  { если текущий элемент строки больше предыдущего... }
       begin
       poubyv := false;         { ...значит элементы в строке не по убыванию }
       exit;
       end;
 poubyv := true;
 end;

function naimotric(a : matrix) : integer;    { ищет номер строки, где меньше всего отриц.эл-в }
 var ni,nj,numi,nmin,tek : integer;
 begin
 numi := 1;  { считаем, что это первая строка }
 nmin := n+1;   { делаем заведомо большим (количество отриц.эл-в) }
 for ni:=1 to n do   { берем очередную строку }
   begin
   tek := 0;          { количество отриц.эл-в в текущей строке }
   for nj:=1 to n do
     if a[ni,nj]<0 then inc(tek);   { если элемент отрицательный - увеличиваем счетчик }
   if tek<nmin then     { если в текущей строке больше отриц.эл-в, чем в запомненой ранее }
     begin
     nmin := tek;      { запоминаем.. }
     numi := ni;
     end;
   end;
 naimotric := numi;   { возвращаем номер строки }
 end;

function naibnuley(a : matrix) : integer;  { ищет номер строки, где больше всего нулей }
 var ni,nj,numi,nmax,tek : integer;
 begin
 numi := 1;    { думаем, что это первая строка }
 nmax := -1;  { ...и что там -1 нулей )) }
 for ni:=1 to n do
   begin
   tek := 0;   { зануляем счетчик }
   for nj:=1 to n do
     if a[ni,nj]=0 then inc(tek);    { если ЭТО ноль, то увеличиваем счетчик }
   if tek>nmax then    { если в текущей строке больше нулей, чем в запомненной ранее... }
     begin
     nmax := tek;    { ...запоминаем }
     numi := ni;
     end;
   end;
 naibnuley := numi;   { возвращаем номер строки }
 end;

begin
clrscr;
{----zapolnenie sluchajnymi }
randomize;
for i:=1 to n do
  begin
  for j:=1 to n do
    begin
    matr[i,j] := random(5)-2;
    write(matr[i,j]:4);
    end;
  writeln;
  end;
writeln('-------');

{--- zapolnenie po ubyvaniyu}
{primer := 15;
for i:=1 to n do
  begin
  for j:=1 to n do
    begin
    matr[i,j] := primer;
    dec(primer);
    write(matr[i,j]:4);
    end;
  writeln;
  end;    }
writeln('-------');
{------------}

if poubyv(matr) then j := naimotric(matr)
 else  j := naibnuley(matr);

for i:=1 to n do
  begin
  x[i] := matr[j,i];
  write(x[i]:4);
  end;


readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 23.01.2009 в 02:45. Причина: ))) + добавил комменты
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 01:54   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая:
Градусы в радианы перевел
Код:
uses crt;
var
a,b,x,y,z : real;
begin
clrscr;
x := 15.3;
y := 81;
z := 8.91;
{----}
y := y*pi/180;
a := y + x/(sqr(y)+abs(sqr(x)/(y+x*x*x/3)));
b := 1 + sqr(sin(z/2)/cos(z/2));
writeln('a= ',a:10:7);
writeln('b= ',b:10:7);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 02:07   #8
Herenvarno
 
Аватар для Herenvarno
 
Регистрация: 21.01.2009
Сообщений: 8
По умолчанию

в пятой задаче:
function naibnuli(a : matrix) : integer;
naibnuli ? что значит наибнули это название массива?
По первой задаче вопрос - модуль в паскале никак не обозначается ?

Последний раз редактировалось Herenvarno; 23.01.2009 в 02:13.
Herenvarno вне форума Ответить с цитированием
Старый 23.01.2009, 02:13   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

=)) ппц..Не обратил внимания ) Исправил
Цитата:
модуль в паскале никак не обозначается ?
abs(<число>)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.01.2009, 02:36   #10
Herenvarno
 
Аватар для Herenvarno
 
Регистрация: 21.01.2009
Сообщений: 8
По умолчанию

Если не трудно, в пятой задаче мог бы в коментариях написать для чего нужна каждая функция и переменные.
Задачу разбить на подзадачи, чтобы решение каждой описывалось процедурой, а а основная программа состояла бы из последовательности вызова процедур.
Это вроде каждую отдельную фунцию процедурой обозвать , а потом просто их вызвать по очереди и всё?(я правильно понимаю...?)
Допустим я написал какую-то процедуру. Можно ли её потом сохранить
чтоб каждый раз её неписать и некопровать из файла?
Herenvarno вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на массивы в Паскале Dark_Zealot Помощь студентам 10 05.02.2010 13:13
Несложные задачи (любую1 из 2) За деньги Bezumie Фриланс 3 21.12.2008 15:42
Цикл и массивы slog Общие вопросы C/C++ 1 23.11.2008 18:22
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34