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

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

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

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

Помогите, пожалуйста, в решении задач

manoichi

Ученик
Регистрация
17 Дек 2010
Сообщения
1
Реакции
0
Баллы
0
Помогите, пожалуйста, в решении задач

Люди помогите кто чем может.Нужна помочь решить задачи по паскалю иначе друга выгонят.Я ему уже решаю он рядом сидит тоже пишит.Но все нам не осилить.
Вот задачи(Заранее спасибо):
4.ввести час суток и соответственно ему вывести «доброе утро», «добрый день», «добрый вечер», «доброй ночи».
8.Вычислить сумму cos (1)+cos(2)+…+cos(n) для n введенного с клавиатуры.
11.подсчитать произведение элементов массива A[1..10,1..10], элементы которого равны A[I,J]=(3+I)/(J*5), где I,J-индексы массива.
4.Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на побочной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций. Основные подзадачи описать в комментариях перед программой.
6.Разработать алгоритмы и программы решения задач, в которых необходимо при помощи пользовательской функции пользователя протабулировать функцию y=cos(7+x/3) в диапазоне параметра от 0.01 до 0.9 с шагом 0.01.
12.Разработать алгоритм и программу решения задачи с использованием модуля пользователя, в которой заменить нулями все элементы, расположенные на побочной диагонали и выше ее матрицы размером 6х6, состоящей из элементов целого типа.
4.В заданном тексте подсчитать количество слов до первой запятой.
17.Дан массив на 10 чисел. Рассортировать его по возрастанию после чего найти минимальные и минимальный элементы.
28.Разработать алгоритм и программу решения задачи, в которой необходимо сформировать на экране горизонтальное меню при помощи процедур и функций модулей CRT и DOS. Меню должно содержать следующие пункты: «Файл», «Правка», «Вид», «Вставка», «Формат», «Дата», «Выход». Для пункта меню «Дата» должен быть вывод текущей даты на экран. Для пункта меню «Выход» должен быть реализован обработчик выхода из программы.
25.Разработать алгоритм и программу решения задач: необходимо при помощи процедур и функций модуля Graph нарисовать кружку.
31.найти сумму и произведение всех отрицательных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа.
 
31.найти сумму и произведение всех отрицательных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа.
Код:
{$r-}
TYPE
 T=ARRAY[1..1] of Integer;
VAR
 A:^T;
 i,j,k,N,Sum:Integer;
 Pr:LongInt;
BEGIN
 Write('N= ');
 ReadLn(N);
 GetMem(A, SizeOf(Integer)*N*N);

 Randomize;

 WriteLn('Initial matrix:');
 For i:=1 to N do
  begin
   For j:=1 to N do
    begin
     A^[N*(i-1)+j]:=Random(20)-10;
     Write(A^[N*(i-1)+j]:5);
    end;
   WriteLn;
  end;
 WriteLn;

 Pr:=1;
 Sum:=0;
 For k:=1 to N*N do
  If A^[k]<0 then
   begin
    Pr:=Pr*A^[k];
    Sum:=Sum+A^[k];
   end;

 WriteLn('The sum of negative elements is ',Sum);
 WriteLn('The pruduct of negative elements is ',Pr);

 FreeMem(A, SizeOf(Integer)*N*N);

 ReadLn;
END.
 
25.Разработать алгоритм и программу решения задач: необходимо при помощи процедур и функций модуля Graph нарисовать кружку.
Код:
Uses Graph, CRT;
BEGIN
 InitGraph(..);{[COLOR=Red]ПАРАМЕТРЫ ФУНКЦИИ ПОДСТАВЬТЕ САМИ[/COLOR]}
 SetLineStyle(SolidLn,0,ThickWidth);
 Ellipse(200,160,0,360,100,50);
 Ellipse(200,160,0,360,90,40);
 Ellipse(200,320,180,360,100,50);
 Line(100,160,100,320);
 Line(300,160,300,184);
 Line(300,296,300,320);
 Line(300,209,300,271);
 Ellipse(320,240,0,115,50,60);
 Ellipse(320,240,245,360,50,60);
 Ellipse(320,240,0,130,30,40);
 Ellipse(320,240,230,360,30,40);
 Ellipse(300,197,90,270,9,12);
 Ellipse(300,283,90,270,9,12);
 ReadKey;
 CloseGraph;
END.
 

Вложения

  • MUG.webp
    MUG.webp
    7.2 KB · Просмотры: 80
17.Дан массив на 10 чисел. Рассортировать его по возрастанию после чего найти минимальные и минимальный элементы.
Код:
VAR
 A:ARRAY[1..10] of BYTE;
 i,j:Integer;
 Dummy:Byte;
BEGIN
 Randomize;
 WriteLn('Initial array:');
 For i:=1 to 10 do
  begin
   A[i]:=Random(200);
   Write(A[i]:5);
  end;
 WriteLn;
 WriteLn;

 For i:=1 to 10 do
  For j:=1 to 10-i do
   If A[j]>A[j+1] then
    begin
     Dummy:=A[j+1];
     A[j+1]:=A[j];
     A[j]:=Dummy;
    end;

 WriteLn('Ordered array:');
 For i:=1 to 10 do
  Write(A[i]:5);

 WriteLn;
 ReadLn;
END.
Что касается второй части задачи, то потакать преподскому дебилизму я не намерен: уж если массив рассортирован по возрастанию, то ясно, что минимальный элемент - самый первый, а максимальный - самый последний. Чего там еще отдельно искать?
 
4.В заданном тексте подсчитать количество слов до первой запятой.
Считаю, что под "текстом" понимается строка. Тогда так:
Код:
uses crt;
VAR
 S:string;
 cnt,N:byte;
BEGIN
 Clrscr;
 WriteLn('Enter the string:');
 ReadLn(S);
 N:=1;
 cnt:=pos(',',S);
 S:=copy(S,1,cnt-1);
 Repeat
  cnt:=pos(' ',S);
  if cnt>0 then Inc(N);
  S:=copy(S,cnt+1,Length(S));
 Until cnt=0;
 WriteLn('The number words before first coma is ',N);
 ReadLn;
end.
 
6.Разработать алгоритмы и программы решения задач, в которых необходимо при помощи пользовательской функции пользователя протабулировать функцию y=cos(7+x/3) в диапазоне параметра от 0.01 до 0.9 с шагом 0.01.
М-да, "пользовательская функция пользователя" - это круто! Ну пожалуйста:
Код:
VAR
 x,y:Real;
 i,j:Integer;

Function User_Func(Xuf:Real):Real;
 begin
  User_Func:=Cos(7.0+Xuf/3);
 end;

BEGIN
 For i:=1 to 6 do
  Write('  x    y     ');
 WriteLn;
 For i:=1 to 15 do
  begin
   For j:=1 to 6 do
    begin
     x:=(i+(j-1)*15)/100;
     y:=User_Func(x);
     Write(x:4:2,y:6:3,'   ');
    end;
   WriteLn;
  end;
 ReadLn;
END.
 
4.Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на побочной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций. Основные подзадачи описать в комментариях перед программой.
12.Разработать алгоритм и программу решения задачи с использованием модуля пользователя, в которой заменить нулями все элементы, расположенные на побочной диагонали и выше ее матрицы размером 6х6, состоящей из элементов целого типа.
Значит так. Я не намерен идти на поводу у идиотизма, ибо в упор не вижу, куда в этой простейшей задачке засунуть всякие там "пошаговые детализации", процедуры, функции, модули(!) и прочее. То есть не вижу такого места в программе, а у препода очень даже вижу. Вот пусть и реализует. Или идет лесом - на выбор. Само решение - пожалуйста:
Код:
CONST
 N=6; {4}
VAR
 A:ARRAY[1..N,1..N] of Integer;
 i,j:Integer;

BEGIN
 Randomize;
 WriteLn('Initial matrix:');
 For i:=1 to N do
  begin
   For j:=1 to N do
    begin
     A[i,j]:=Random(200)-100;
     Write(A[i,j]:5);
    end;
   WriteLn;
  end;
 WriteLn;

 For i:=1 to N do
  For j:=1 to N-i+1 do
   A[i,j]:=0;

 WriteLn('Transformed matrix:');
 For i:=1 to N do
  begin
   For j:=1 to N do
    Write(A[i,j]:5);
   WriteLn;
  end;
 WriteLn;
 ReadLn;
END.
 
11.подсчитать произведение элементов массива A[1..10,1..10], элементы которого равны A[I,J]=(3+I)/(J*5), где I,J-индексы массива.
Код:
VAR
 A:ARRAY[1..10,1..10] of Real;
 i,j:Integer;
 P:Real;

BEGIN
 P:=1;
 For i:=1 to 10 do
  For j:=1 to 10 do
   begin
    A[i,j]:=(3.0+1.0*i)/j/5;
    P:=P*A[i,j];
   end;

 WriteLn('The product is: ',P);
 ReadLn;
END.
 
4.ввести час суток и соответственно ему вывести «доброе утро», «добрый день», «добрый вечер», «доброй ночи».
Код:
VAR
 H:Byte;
BEGIN
 Write('Enter the hour: ');
 ReadLn(H);
 If (H>4) and (H<=9) then WriteLn('Good morning!') else
 If (H>9) and (H<=17) then WriteLn('Good afternoon!') else
 If (H>17) and (H<=23) then WriteLn('Good evening!') else
 WriteLn('Good night!');
 ReadLn;
END.
 
Что касается задачи про DOS-CRT функции, то я, к сожалению, знаю их плохо, поскольку практически ими не пользуюсь. Извините.
 
Назад
Сверху