Весь ХарцызскГлавная Весь Харцызск
Весь Харцызск
Весь Харцызск
   Логин:  Пароль:

14.04.2021 г. 4:56 

Виды Харцызска 

Виды Харцызска

Весь Харцызск 

  Главная
  Новости Харцызска

  Информация о Харцызске
  О городе
  Власти Харцызска
  История города
  Статистика города
  Статьи о городе
  Каталог предприятий
  Карта Харцызска
  Харцызск на карте Google

  Задать вопрос мэру Харцызска
  Юридическая консультация

  Форум
  Чат

  Фотоальбом
  Файлы
  Ссылки

  Телепрограмма 
  Гороскопы
  Анекдоты
  Игры

  Топ-10
  Поиск

  О нас
  Реклама на сайте
  Написать нам
  Рекомендовать нас
  Добавить в Избранное

Кто на сайте: 


В чате: 1


Реклама 

Интернет-провайдер «DiDAN» — 100 Мбит/сек!

Поиск по сайту 




Реклама 


• 





Весь Харцызск :: Просмотр темы - Задачки на Pascal
 Правила форумаПравила   FAQFAQ   ПоискПоиск   ГруппыГруппы   ПользователиПользователи   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход  


Внимание новичков!

В связи с участившимися случаями спама, у вновь зарегистрированных пользователей отключена возможность создания сообщений на форуме. Возможность писать сообщения будет включаться администратором вручную — через некоторое время после регистрации пользователя. Для включения этой функции быстрее, пишите личное сообщение администратору сайта (в сообщении напишите кратко о себе и с какой целью регистрировались на сайте).
Обратите внимание: пользователям, нарушающим п.2.1 возможность писать сообщения включаться не будет!
Просим отнестись с пониманием: это вынужденная мера.
 

Задачки на Pascal
На страницу 1, 2, 3, 4  След.
 
Начать новую тему   Ответить на тему    Список форумов Весь Харцызск -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
goon4a
Приезжий
Приезжий


Зарегистрирован: Feb 11, 2010
Сообщения: 16

СообщениеДобавлено: Пт Фев 12, 2010 5:38    Заголовок сообщения: Задачки на Pascal Ответить с цитатой

Добрый день всем. Первый раз обращаюсь за помощью) Значит очень нужна помощь. Была бы легкая задача, не обратилась.
Задание: Протабулировать функцию
y={e^x, 0<=x<=1;
{sqrt(x*b), 1<=x<=2
с шагом dx=0,2, где b-сумма всех элементов массива {A1,...,A10} вещественного типа. Сумму вычислите с помощью функции.
Благодарю, если кто-то ответит)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Пт Фев 12, 2010 13:07    Заголовок сообщения: Ответить с цитатой

Три вопроса:
1. Что такое протабулировать?
2. На каком языке писать?
3. Массив А задается ручками или с потолка берем?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
goon4a
Приезжий
Приезжий


Зарегистрирован: Feb 11, 2010
Сообщения: 16

СообщениеДобавлено: Пн Фев 15, 2010 13:28    Заголовок сообщения: Ответить с цитатой

1. Табулирование функции - это вычисление значений функции при изменении аргумента от некоторого начального значения до некоторого конечного значения с определенным шагом.
2. на Pascal
3. Про массив не сказано ничего в задании. Как легче, чем лучшеSmile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
TOR
Забанен за спам
Забанен за спам


Зарегистрирован: Nov 21, 2008
Сообщения: 371

СообщениеДобавлено: Пн Фев 15, 2010 18:04    Заголовок сообщения: Ответить с цитатой

Если не забуду, завтра код кину.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Ср Фев 17, 2010 16:06    Заголовок сообщения: Ответить с цитатой

Если мне память не изменяет, то что-то такое:
Код:
program Tabulirovanie;

uses crt, math;

const dx=0.2;

var
   A: array [1..10] of extended;
   x,y: real;
   b: extended;
   i: integer;

begin
     writeln ('Введите 10 чисел массива А');
     for i:=1 to 10 do
     begin
         writeln ('Введите', i,'-й элемент');
         readln (A[i]);
     end;
     b:= sum(A);
     for i:=0 to 5 do
     begin
          x:=dx*i;
          y:=exp(x);
          writeln(y);
     end;
     for i:=6 to 10 do
     begin
          x:=dx*i;
          y:=sqrt(x*b);
          writeln(y);
     end;
end.

Ну там красоту уже сами как-нить наведете.
Проверяйте.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
goon4a
Приезжий
Приезжий


Зарегистрирован: Feb 11, 2010
Сообщения: 16

СообщениеДобавлено: Ср Фев 17, 2010 19:03    Заголовок сообщения: Ответить с цитатой

это вы в чем написали, просто в Pascal или нет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Krom
Бессмертный форумчанин
Бессмертный форумчанин


Зарегистрирован: Apr 07, 2006
Сообщения: 3370
Откуда: Моспино, Донецк, Харцызск

СообщениеДобавлено: Ср Фев 17, 2010 19:57    Заголовок сообщения: Ответить с цитатой

goon4a писал(а):
это вы в чем написали, просто в Pascal или нет?

да, это просто Паскаль.
Что-то не так?
Меня только смущают условия

goon4a писал(а):

0<=x<=1;
1<=x<=2
с шагом dx=0,2

получается, что при х=1 функция должна вычисляться 2 раза - по каждому из условий.
Итого - при 11 шагах х нужно получить 12 результатов y.

я, к сожалению, не могу на своей винде запустить Паскаль, поэтому предложу тут варианты, ок?

Код:

begin
clrscr;
b:=0;
     writeln ('Введите 10 чисел массива А');
     for i:=1 to 10 do
     begin
         writeln ('Введите', i,'-й элемент');
         readln (A[i]);
        b:=b+A[i];
     end;

x:=0;
while 0<= x <= 2 do
begin
if (0<=x<=1) then
  begin
     y:=exp(x);
      writeln('x=',x,'  ','y=',y);
  end;
if (1<=x<=2) then
  begin
      y:=sqrt(x*b);
      writeln('x=',x,'  ','y=',y);
  end;
x:=x+dx;
end;

end.

_________________
когда-то было "Veni, Vidi, Modero"


Последний раз редактировалось: Krom (Ср Фев 17, 2010 20:37), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Ср Фев 17, 2010 20:30    Заголовок сообщения: Ответить с цитатой

Это написано в просто Pascal, компилятор FreePascal 2.4.0. Тут такие моменты, модуль math во FreePascal есть, за остальные не скажу. В задании не сказано но вероятно подразумевалось функцию суммы писать в программе, а не использовать готовую, можно согласиться, можно отбрехаться пусть в следующий раз яснее задание пишут.
И да по поводу условий, в приведенном тексте условия малость переврал:
0<=x<=1;
1<x<=2.
Если что-то не устраивает пишите.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Krom
Бессмертный форумчанин
Бессмертный форумчанин


Зарегистрирован: Apr 07, 2006
Сообщения: 3370
Откуда: Моспино, Донецк, Харцызск

СообщениеДобавлено: Ср Фев 17, 2010 20:40    Заголовок сообщения: Ответить с цитатой

Archangel писал(а):

Если что-то не устраивает пишите.

как тебе мой вариант? можешь скомпилить?
_________________
когда-то было "Veni, Vidi, Modero"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Ср Фев 17, 2010 20:54    Заголовок сообщения: Ответить с цитатой

Допиши свои объявы переменных, подставил под свои ругается на тип переменной х, хотя мне что-то кажется пробема в двойном условии, они поддерживаются?
Код:
program Project1;

uses crt, math;

const dx=0.2;

var
   A: array [1..10] of extended;
   x,y: real;
   b: extended;
   i: integer;


begin
     clrscr;
b:=0;
     writeln ('Введите 10 чисел массива А');
     for i:=1 to 10 do
     begin
         writeln ('Введите', i,'-й элемент');
         readln (A[i]);
        b:=b+A[i];
     end;

x:=0;
while 0<= x <= 2 do
begin
if (0<=x<=1) then
  begin
     y:=exp(x);
      writeln('x=',x,'  ','y=',y);
  end;
if (1<=x<=2) then
  begin
      y:=sqrt(x*b);
      writeln('x=',x,'  ','y=',y);
  end;
x:=x+dx;
end;
end.


Код:
project1.pas(26,8) Error: Incompatible types: got "Boolean" expected "LongInt"
project1.pas(28,6) Error: Incompatible types: got "Boolean" expected "LongInt"
project1.pas(33,6) Error: Incompatible types: got "Boolean" expected "LongInt"

Я давно не кодил конечно, но что-то мне кажется там надо:
Код:
while (0<= x) and (x<= 2) do
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Krom
Бессмертный форумчанин
Бессмертный форумчанин


Зарегистрирован: Apr 07, 2006
Сообщения: 3370
Откуда: Моспино, Донецк, Харцызск

СообщениеДобавлено: Ср Фев 17, 2010 21:29    Заголовок сообщения: Ответить с цитатой

Archangel писал(а):

Я давно не кодил конечно, но что-то мне кажется там надо:
Код:
while (0<= x) and (x<= 2) do

Согласен. Уж два условия простых точно будут работать.
_________________
когда-то было "Veni, Vidi, Modero"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Ср Фев 17, 2010 21:35    Заголовок сообщения: Ответить с цитатой

Код:
program Project1;

uses crt, math;

const dx=0.2;

var
   A: array [1..10] of extended;
   x,y: real;
   b: extended;
   i: integer;


begin
     clrscr;
b:=0;
     writeln ('Введите 10 чисел массива А');
     for i:=1 to 10 do
     begin
         writeln ('Введите', i,'-й элемент');
         readln (A[i]);
        b:=b+A[i];
     end;

x:=0;
while (0<= x) and (x<= 2) do
begin
if (0<=x) and (x<=1) then
  begin
     y:=exp(x);
      writeln('x=',x,'  ','y=',y);
  end;
if (1<=x) and (x<=2) then
  begin
      y:=sqrt(x*b);
      writeln('x=',x,'  ','y=',y);
  end;
x:=x+dx;
end;
end.

Так вроде работает, арифметику мне лень проверять. Тут конечно вариантов можно уйму накрутить.
Да и в этом случае в строке:
Код:
if (1<=x) and (x<=2) then

Проверка на х=1 проходить не будет, этот вариант будет перехвачен предыдущим условием, так что тут что х<1, что х<=1 будет обрабатываться одинаково и получится 11 результатов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Krom
Бессмертный форумчанин
Бессмертный форумчанин


Зарегистрирован: Apr 07, 2006
Сообщения: 3370
Откуда: Моспино, Донецк, Харцызск

СообщениеДобавлено: Ср Фев 17, 2010 21:41    Заголовок сообщения: Ответить с цитатой

Archangel писал(а):

Так вроде работает, арифметику мне лень проверять. Тут конечно вариантов можно уйму накрутить.

внешне - и я согласен - должно работать как надо.
Делать проверку на ввод числа - сюда слишком жирно будет. Не тот уровень задачки.
_________________
когда-то было "Veni, Vidi, Modero"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Archangel
Старожил
Старожил


Зарегистрирован: Aug 21, 2006
Сообщения: 386

СообщениеДобавлено: Ср Фев 17, 2010 21:48    Заголовок сообщения: Ответить с цитатой

А какая проверка? х ведь не вводится, эта переменная просто перебирается, и все ее значения известны заранее. В общем в вашем варианте, все таки произвести рассчет при х=1 два раза(по обоим формулам) сложнее чем в моем. Smile
У меня достаточно в последнем цикле написать:
Код:
for i:=5 to 10 do

PS Да и по-моему, пример не такой уж сложный, особенно если заглянуть в тему:
http://khartsizsk.com/modules.php?name=Forums&file=viewtopic&t=924


Последний раз редактировалось: Archangel (Ср Фев 17, 2010 22:11), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Krom
Бессмертный форумчанин
Бессмертный форумчанин


Зарегистрирован: Apr 07, 2006
Сообщения: 3370
Откуда: Моспино, Донецк, Харцызск

СообщениеДобавлено: Ср Фев 17, 2010 22:10    Заголовок сообщения: Ответить с цитатой

Archangel писал(а):
В общем в вашем варианте, все таки произвести рассчет при х=1 два раза(по обоим формулам) сложнее чем в моем. Smile
У меня достаточно в последнем цикле написать:
Код:
for i:=5 to 10 do

не вижу проблем в вычислении по таким условиям. Честно. Не понимаю трудностей такого цикла.
Ты ведь видишь, что dx - условие для задачи, и он теоретически может быть переменным. И посчитать - сколько раз укладывается х в диапазон от 0 до 1 при таком dx, чтобы поставить условие цикла - это не совсем правильно)

Говоря о проверке, я имел в виду следующее -
readln (A[i]);
где гарантия, что пользователь не введет сюда буквы? или символы...
программа тут же вылетит. Правильно ж?
_________________
когда-то было "Veni, Vidi, Modero"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Весь Харцызск -> Программирование Часовой пояс: GMT + 2
На страницу 1, 2, 3, 4  След.
Страница 1 из 4

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001 phpBB Group

Version 2.0.6 of PHP-Nuke Port by Tom Nitzschner © 2002 www.toms-home.com
Forums ©



Наверх
О нас  :: Контакт с автором  :: Реклама на сайте  :: Рекомендовать Нас
Наверх
Khartsizsk2007 theme by Весь Харцызск
Яндекс цитирования
Все логотипы и торговые марки на этом сайте являются собственностью их соответствующих владельцев. Все материалы на сайте являются собственностью их авторов. Администрация сайта может не разделять точку зрения авторов. Использование материалов сайта без разрешения администрации сайта не допускается
© 2006 - 2016 khartsizsk.com Использование материалов разрешается при условии ссылки (для интернет-изданий - гиперссылки) на сайт «Весь Харцызск»
PHP-Nuke Copyright © 2006 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. The Russiаn localizatiоn - prоjесt РhрNukе.RU
Открытие страницы: 0.03 секунды и 16 запросов к БД