Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 30.04.2011, 14:26   #1 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите с программой

Вычислить и вывести на экран в виде таблицы значения функции, заданной гра¬фически в соответствии с вариантом домашнего задания 2 на интервале от xнач до xкон с шагом dx. Интервал и шаг задать таким образом, чтобы проверить все ветви программы. Таблицу снабдить заголовком и шапкой. Пример результата выполнения программы на экране:


прога

program dz5_1;
uses crt;
var x,n,m:integer; y:real; f_in,f_out:text;
const r=2;
begin
clrscr;
assign(f_in,'C:\input.txt');
reset(f_in);
assign(f_out,'C:\output.txt');
rewrite(f_out);
readln(f_in,m,n);
writeln(f_out,'funkcia idz 2 variant 12');
writeln(f_out,'______________________');
write(f_out,'| x'); writeln(f_out,' | y |');
writeln(f_out,'______________________');
for x:=m to n do
begin
If x>=7 then y:=2
Else if x>=-6 then y:=((x+2)/4)
Else if x>=-2 then y:=sqrt(sqr(R)-sqr(x))+2
Else if x>=0 then y:=sqrt(sqr(R)-sqr(x-2))
Else if x>=2 then y:=((x-2)/-1)
Else if (x<-7) and (x>3) then writeln (‘Reshenii net’);
write(f_out,'|',x:8); writeln(f_out,'| ',y:8:2,'|');
end;
writeln(f_out,'______________________');
close(f_out);
readln;
end.

не могу условие правильно поставить и не выводит в файле решения нет
Миниатюры
clip_image002.jpg  
billchester вне форума   Ответить с цитированием

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

Давайте проясним ситуацию, прочитав похожие темы на форуме

Помогите с программой
Помогите с программой в Паскале

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

Ну вот один из возможных вариантов. Главные исправления:
1. Правильно сформулированы условия по х.
2. Убран входной файл - он тут явно "для мебели".
3. Поскольку использован файловый, а не экранный вывод, то и экранные команды тут абсолютно ни к чему. Поэтому убран модуль CRT, команды ClrScr и Readln в конце. Чего на пустой экран пялиться?
4. Переменная х должна иметь вещественный (real), а не целочисленный (integer) формат.
Остальное - по мелочи.
Код:
program dz5_1;
const
 dx=0.1;
var
  i:integer;
  x,y:real;
  f_out:text;
begin
 assign(f_out,'C:\output.txt');
 rewrite(f_out);
 writeln(f_out,'funkcia idz 2 variant 12');
 writeln(f_out,'______________________');
 writeln(f_out,'|    x    |    y    |');
 writeln(f_out,'______________________');
 for i:=0 to Round(10/dx) do
  begin
   x:=-7+dx*i;
   if x>2  then y:=2-x else
   if x>0  then y:=sqrt(4-sqr(x)) else
   if x>-2 then y:=2-sqrt(4-sqr(x+2)) else
   if x>-6 then y:=(x+2)/4 else
   y:=2;
   writeln(f_out,'| ',x:8:2,'| ',y:8:2,'|');
  end;
 writeln(f_out,'______________________');
 close(f_out);
end.
Vladimir_S вне форума   Ответить с цитированием
Старый 30.04.2011, 16:55   #3 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

не смотри, чтобы проверять значения нужно вводить интервал, а так просто таблица получается.
Нужно проверять точки на этом рисунке принадлежат ли они ему или нет
billchester вне форума   Ответить с цитированием
Старый 30.04.2011, 17:34   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от billchester Посмотреть сообщение
не смотри, чтобы проверять значения нужно вводить интервал, а так просто таблица получается.
Нужно проверять точки на этом рисунке принадлежат ли они ему или нет
Ладно, тогда так:
Код:
program dz5_1;
Uses CRT;
var
  i,N:integer;
  x,y,Xmin,Xmax,dx:real;
  b:boolean;
  f_out:text;
begin
 assign(f_out,'C:\output.txt');
 rewrite(f_out);
 clrscr;
 write('Xmin= ');
 readln(Xmin);
 write('Xmax= ');
 readln(Xmax);
 write('Step= ');
 readln(dx);
 N:=Round((Xmax-Xmin)/dx);
 writeln('funkcia idz 2 variant 12');
 writeln('______________________');
 writeln('|    x    |      y     |');
 writeln('______________________');
 writeln(f_out,'funkcia idz 2 variant 12');
 writeln(f_out,'______________________');
 writeln(f_out,'|    x    |      y     |');
 writeln(f_out,'______________________');
 for i:=0 to N do
  begin
   x:=Xmin+dx*i;
   b:=true;
   if x>3   then b:=false else
   if x>2   then y:=2-x else
   if x>0   then y:=sqrt(4-sqr(x)) else
   if x>-2  then y:=2-sqrt(4-sqr(x+2)) else
   if x>-6  then y:=(x+2)/4 else
   if x>=-7 then y:=2 else b:=false;
   if b then writeln('| ',x:8:2,'| ',y:11:3,'|') else
    writeln('| ',x:8:2,'|out of range|');
   if b then writeln(f_out,'| ',x:8:2,'| ',y:11:3,'|') else
    writeln(f_out,'| ',x:8:2,'|out of range|');
  end;
 writeln('______________________');
 writeln(f_out,'______________________');
 close(f_out);
 readln;
end.
Тут уже по-моему всё впихнуто: и экран, и файл, и ввод диапазона и вообще.
Vladimir_S вне форума   Ответить с цитированием
Старый 01.05.2011, 01:34   #5 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

во блин вообще четко=)
спасибо!!!
billchester вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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