Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 17.12.2010, 23:43   #1 (permalink)
manoichi
Новичок
 
Регистрация: 17.12.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, в решении задач

Люди помогите кто чем может.Нужна помочь решить задачи по паскалю иначе друга выгонят.Я ему уже решаю он рядом сидит тоже пишит.Но все нам не осилить.
Вот задачи(Заранее спасибо):
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], состоящего из элементов целого типа.
manoichi вне форума   Ответить с цитированием

Старый 17.12.2010, 23:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что тут найдется много важного по вашему запросу

Требуется срочная помощь в решении задач по электротехнике
Нужна помощь в решении двух задач
Нужна помощь в решении задач на Паскале
Помогите пожалуйста в решении задач в Pascal
Помогите, пожалуйста, в решении задачи
Нужна помощь в решении задач на Ассемблере

Старый 18.12.2010, 11:16   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 12:10   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
25.Разработать алгоритм и программу решения задач: необходимо при помощи процедур и функций модуля Graph нарисовать кружку.
Код:
Uses Graph, CRT;
BEGIN
 InitGraph(..);{ПАРАМЕТРЫ ФУНКЦИИ ПОДСТАВЬТЕ САМИ}
 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.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 12:35   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Что касается второй части задачи, то потакать преподскому дебилизму я не намерен: уж если массив рассортирован по возрастанию, то ясно, что минимальный элемент - самый первый, а максимальный - самый последний. Чего там еще отдельно искать?
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 12:58   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 18.12.2010, 13:24   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 13:45   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 13:52   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 14:01   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
8.Вычислить сумму cos (1)+cos(2)+…+cos(n) для n введенного с клавиатуры.
Код:
VAR
 i,n:longInt;
 Sum:Real;

BEGIN
 Write('n= ');
 ReadLn(n);
 Sum:=0;
 For i:=1 to n do
  Sum:=Sum+Cos(1.0*i);
 WriteLn('The result is',Sum:10:5);
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.12.2010, 14:11   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от manoichi Посмотреть сообщение
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:26.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.