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


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

Цитата:
Сообщение от M@rgo Посмотреть сообщение
Вот что получилось:

VAR
S,s1:String;
L:Integer;
i,n,Sum,Code:Integer;
BEGIN
Writeln('Enter the string:');
Readln(S);
Sum:=0;
L:=Length(s);
For i:=1 to L do
begin
S1:=s[i];
Val(S1,n,Code);
Inc(Sum,n);
end;
Writeln('Sum= ',Sum);
Readln
END.
Ну и ладно. Можно немного причесать, например вместо
L:Integer;
i,n,Sum,Code:Integer;
записать просто
i,n,Sum,Code,L:Integer;

Но не обязательно.
Vladimir_S вне форума   Ответить с цитированием
Старый 10.06.2011, 22:06   #32 (permalink)
rodger_rulez
Новичок
 
Регистрация: 01.06.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Владимир, прошу еще Вашей помощи в последний раз...
Вот задачка:
Протабулироавать функцию y=|cosx²-0,51|sin(3x-4)-4,44 на отрезке [0;7] с шагом h=0,1x7. Результат вывести в виде таблицы. Определить сумму всех положительных значений функции Y и количество отрицательных.
rodger_rulez вне форума   Ответить с цитированием
Старый 10.06.2011, 22:08   #33 (permalink)
rodger_rulez
Новичок
 
Регистрация: 01.06.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

функция y=|cos(x*x)-0,51|sin(3x-4)-4,44
rodger_rulez вне форума   Ответить с цитированием
Старый 10.06.2011, 22:37   #34 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от rodger_rulez Посмотреть сообщение
функция y=|cos(x*x)-0,51|sin(3x-4)-4,44
Ох, ну до чего это утомительно, когда в условии задачи явный брёх! Простейший анализ формулы показывает, что никаких положительных значений там в принципе быть не может!!! Судите сами:
1. Под знаком модуля - косинус чего-то минус 0.51, т.е. максимальное значение - около 1.5.
2. Дальше это дело умножается на синус чего-то, неважно чего, имеющий максимальное значение 1. Произведение этих двух сомножителей дает максимальное значение 1.49.
3. И теперь из этого вычитается 4.44. И откуда положительным величинам взяться?
Ну ладно, моё дело - сторона. Вы дали такое условие - получите:
Код:
Const
 Xmin=0;
 Xmax=7.0;
 DX=0.7;
VAR
 N,i,Num:Integer;
 x,Sum:Real;

Function Y(Xy:Real):Real;
begin
 Y:=Abs(Cos(Sqr(Xy))-0.51)*Sin(Xy*3-4)-4.44;
end;

BEGIN
 N:=Round((Xmax-Xmin)/DX);
 Writeln('   x         y');
 Sum:=0;
 Num:=0;
 For i:=0 to N do
  begin
   x:=Xmin+DX*i;
   Writeln(x:5:1,Y(x):12:5);
   If Y(x)>0 then Sum:=Sum+Y(x);
   If Y(x)<0 then Num:=Num+1;
  end;
 Writeln;
 Writeln('Sum of positive values is ',Sum:10:3);
 Writeln('Number of negative values is ',Num);
 Readln
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 11.06.2011, 11:47   #35 (permalink)
M@rgo
Member
 
Регистрация: 08.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Еще раз всем ПРИВЕТ!!!!! нужно помощь, срочно!!!!
нужно объяснение строчкам!!!!

задача 22: дана строка изображающая целое положительное число. Вывести сумму цифр этого числа.

VAR
S,s1:String;
L,i,n,Sum,Code:Integer;
BEGIN
Writeln('Enter the string:');
Readln(S);
Sum:=0;
L:=Length(s);
For i:=1 to L do
begin
S1:=s[i];
Val(S1,n,Code);
Inc(Sum,n);
end;
Writeln('Sum= ',Sum);
Readln
END.
M@rgo вне форума   Ответить с цитированием
Ads

Яндекс

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

Пожалуйста:
VAR {Задаем переменные (параметры) программы}
S,s1:String; {Вводим две переменные типа "Строка"}
L,i,n,Sum,Code:Integer; {Ещё вводим несколько целочисленных}
BEGIN {Начинаем}
Writeln('Enter the string:'); {Компьютер просит вести строку }
Readln(S); {Вводим стоку}
Sum:=0; {Будущей сумме цифр присваиваем исходное значение "0"}
L:=Length(s); {Переменной L присваиваем значение, равное количеству символов во введенной строке, в данном случае - количеству цифр числа }
For i:=1 to L do {Объявляем цикл посимвольного перебора введенной строки}
begin {Начинаем этот цикл}
S1:=s[i]; {Строковой переменной S1 присваиваем значение текущего (i-того) символа строки, в данном случае - символа знака цифры. Эта строка - на всякий случай; не все версии Паскаля допускают непосредственную подстановку символа (а не строки) в оператор Val}
Val(S1,n,Code);{Преобразуем символ S1 в число (цифру) n. Параметр Code отражает наличие или отсутствие ошибок при этой операции; его использование (или неиспользование) - на усмотрение программиста. В данном случае он никак не обрабатывается, но вводить его всё равно надо}
Inc(Sum,n); {Увеличиваем искомую сумму Sum на величину n}
end;{Конец цикла по цифрам исходного числа}
Writeln('Sum= ',Sum);{Вывод результата (полученной суммы) на экран}
Readln {Останов, чтобы можно было на этот результат посмотреть}
END. {Всё!}
Vladimir_S вне форума   Ответить с цитированием
Старый 11.06.2011, 19:23   #37 (permalink)
M@rgo
Member
 
Регистрация: 08.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Хорошо, спасибо большое!!!!!

Во эту строку:
Inc(Sum,n);
можно записать так:
Sum:=Sum+n;
да?и буде тоже самое

А что с этой строкой:
Val(S1,n,Code);
M@rgo вне форума   Ответить с цитированием
Старый 11.06.2011, 20:27   #38 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от M@rgo Посмотреть сообщение
Хорошо, спасибо большое!!!!!

Во эту строку:
Inc(Sum,n);
можно записать так:
Sum:=Sum+n;
да?и буде тоже самое
Абсолютно.
Цитата:
А что с этой строкой:
Val(S1,n,Code);
В каком смысле - что? Я же вроде подробно расписал про эту строку. Если интересуетесь, можно ли заменить чем-нибудь - ответ, увы, отрицательный.
А вообще
VAL(S,N,Code) (преобразование строки в число) и
STR(N,S) (обратное преобразование) - это стандартные процедуры Паскаля.
Vladimir_S вне форума   Ответить с цитированием
Старый 11.06.2011, 20:47   #39 (permalink)
M@rgo
Member
 
Регистрация: 08.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ясно!!! Thanks!!!!
M@rgo вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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