Digma Опубликовано 14 апреля, 2009 Жалоба Опубликовано 14 апреля, 2009 Пожалуйсто помогите, я в паскале вобще не понимаю.1. Около стены наклонно стоит палка заданной длины. Известно расстояние от стены до конца палки. Определить значение угла между полом и палкой.2. Найти значение функции, заданной графиком.Как я понял надо программу составить! Цитата
martinges Опубликовано 14 апреля, 2009 Жалоба Опубликовано 14 апреля, 2009 1) арккосинус(x/L) x катет, L гипотенуза2) находим уравнение прямой проходящей через 2 точки (x-x1)/(x2-x1)=(y-y1)/(y2-y1)если x<-3 то вывод("не попал ")иначе если (x>=-3)и(x<=3) то вывод(смотри формулу прямой) иначе вывод("значение функции=6"); Цитата
Digma Опубликовано 14 апреля, 2009 Жалоба Опубликовано 14 апреля, 2009 martingesСорри, я не знаю как программу написать. Будь добр напиши если можеш на 2 задачки, ОТБЛАГОДАРЮ чем смогу! Цитата
martinges Опубликовано 14 апреля, 2009 Жалоба Опубликовано 14 апреля, 2009 дык так неинтересно))учись прогу писать) нафига ты учишься то?)1)var x,l:real;beginreadln(x,l);writeln(arctan(sqrt(sqr(l)-sqr(x))/x)*(180)/pi:5:2);end.{гг вспомнил что вроде нет арккосинуса в паскале зато есть арктангенс путём нехитрых вычислений понимаем что тангенс это частное катетов) дальше преобразование в градусы, иначе будешь получать всё в радианах и тебе это не понравится }2) имеются 2 точки (-3,0) и (3,6) формулу сверху видишь оттуда следует что x1=-3 y1=0 x2=3 y2=6 далее оставляешь y в правой части уравнения всё остальное угоняешь влевую часть и о алелуя получаем уравнение прямой)далее код : if x<-3 then write('Акела промахнулся :)')else if (x>=-3)and(x<=3) then write('значение уравнения равно ',{а тут формулка прямой})else write('значение уравнения равно 6');end.там где формулка советую сделать форматный вывод без мантисы)последний else равно 6 думаю и так понятно почему Цитата
PapiruS Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Дано натуральное число k. Напечатать k-ую цифру последовательности: 12345678910111213..., в которой выписаны подряд все натуральные числа. помогите плз решить, мне нужно блок-схему составить, но можна проста на паскале тока без масивов и процедур там всяких паскалевских.заранее всем спасиба) Цитата
Inclodes Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Дано натуральное число k. Напечатать k-ую цифру последовательности: 12345678910111213..., в которой выписаны подряд все натуральные числа.создаестся строка (изначально присваеваешь строке пустое значение(прим s=''))считываешь с клавы значение k делаешь цикл for от 1 до кв цикле делаешь что-то подобное s=s+str(i)затем выводишь на экран элемент s(k)там в цикле можно и не до k но у мну щас мозга не соображают, посему более рационального решения я представить не могу. Цитата
PapiruS Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Inclodesты маленько не понял задание) последовательность тут идет бесконечная 1234567891011..1920..2930..3940..49.....99100...199..1000..1999......... и нужно выдать к-ую цифру этой послед-тиДобавлено спустя 1 минуту 19 секунд:и строки и масивы не используются, а тока циклы да деления целочисленные Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 PapiruSчто-то типа того(синтаксис паскаля не очень помню):function dec_cnt(t:integer):integer;var i:integer;begin i=1; while (t>=10) do begin t:=t div 10; inc(i); end result:=i;end;function n_dec(t,i:integer):integer;var j:integer;begin j=dec_cnt(t)+1-i; while (j>=0) begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln("Result = ",n_dec(i,k));ps. Написал для теста на перле и попытался перевести в паскаль, сорри если что-то не так. на перле:use strict;sub dec_cnt{ my $t=shift; my $i=1; while ($t>=10) { $t/=10; $i++; } return $i;}sub n_dec{ my $t=shift; my $i=shift; my $j=dec_cnt($t)+1-$i; while (--$j) { $t/=10;} return $t%10;}my $k=<>;my $i=1;while ($k>dec_cnt($i)){$k-=dec_cnt($i);$i++;}print "Result=".n_dec($i,$k); Цитата
Lakers Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 да че ты масифчик на блоксехе нарисовать не можеш то? Цитата
Digma Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 martingeswriteln(arctan(sqrt(sqr(l)-sqr(x))/x)*(180)/pi:5:2);Зачем умножаем на (180)/pi:5:2); Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 да че ты масифчик на блоксехе нарисовать не можеш то?Это кому было-то?Добавлено спустя 1 минуту 28 секунд:Зачем умножаем на (180)/pi:5:2);Переводит в градусы из радиан. Цитата
Digma Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Плиз как из (x-x1)/(x2-x1)=(y-y1)/(y2-y1) выразить у??? Помогите плиз! Цитата
Трали-Вали Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Задан массив действительных чисел. Определите, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых происходит смена знака.... пздц, стыдно Помогите ))) Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Трали-Вали,a - заданный массив, b - массив в котором будут хранится номера позиций в которых меняется знак, j - количество изменений знакаj=0;for (int i=0;i{if (a[i]*a[i+1]<0) { b[j++]=i+1; }} Цитата
Digma Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Плиз как из (x-x1)/(x2-x1)=(y-y1)/(y2-y1) выразить у??? Помогите плиз! Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Digmaиздеваешься? математика обычная же.y= ( (x-x1)/(x2-x1) ) * (y2-y1) +y1 Цитата
D3V3L0p3R Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 народ нид Бэкап!#include #pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ if (Edit1->Text==""){ShowMessage("Enter your nickname"); return;}ServerSocket1->Active = true ;Button3->Enabled = true;Button4->Enabled = true ;Button1->Enabled = false ;Memo1->Lines->Add("Server Created") ;}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){Edit2->Text=ClientSocket1->Address;ClientSocket1->Active = true ;Button2->Enabled = false ;Button4->Enabled = true ;}//---------------------------------------------------------------------------void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add("Client connected");}//---------------------------------------------------------------------------void __fastcall TForm1::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add("Connected");}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){if (ServerSocket1->Active==true){ServerSocket1->Socket->Connections[1]->SendText(Edit1->Text+"::"+Edit3->Text); }else{ ClientSocket1->Socket->SendText(Edit1->Text+"::"+Edit3->Text);}Memo1->Lines->Add(Edit1->Text+"::"+ Edit3->Text) ;Edit3->Text="";}//---------------------------------------------------------------------------void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add(Socket->ReceiveText()) ;}//---------------------------------------------------------------------------void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add(Socket->ReceiveText()) ;}//---------------------------------------------------------------------------//---------------------------------------------------------------------------Блин выдает error: list index out of boundsГде именно я накосячил? Цитата
Трали-Вали Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 X-tender, профессиональный подход к делу! Благодарствую Цитата
haha Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 D3V3L0p3Rошибка говорит: "индекс ушел за пределы массива", подозреваю это о переполнении в сокетах.Но, так как я сам лабу про чатик не сделал, могу ошибаться.и это не паскаль, это си., хотя не суть важно. Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 {ServerSocket1->Socket->Connections[1]->SendText(Edit1->Text+"::"+Edit3->Text); }Тут имхо Connections[0] должно быть Цитата
D3V3L0p3R Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 Да тут и не ноль. Сделал карочь по человечески,т.е. заново.#include #pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){ if (Edit1->Text==""){ShowMessage("Enter your nickname"); return;}ServerSocket1->Active = true ;Button3->Enabled = true;Button4->Enabled = true ;Button1->Enabled = false ;Memo1->Lines->Add("Server Created") ;}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){Edit2->Text=ClientSocket1->Address;ClientSocket1->Active = true ;Button2->Enabled = false ;Button4->Enabled = true ;}//---------------------------------------------------------------------------void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add("Client connected");}//---------------------------------------------------------------------------void __fastcall TForm1::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add("Connected");}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){ int i;if (ServerSocket1->Active==true){ for (i=0;i<(ServerSocket1->Socket->ActiveConnections-1);i++) {ServerSocket1->Socket->Connections[i]->SendText(Edit1->Text+"::"+Edit3->Text); } }else{ ClientSocket1->Socket->SendText(Edit1->Text+"::"+Edit3->Text);}Memo1->Lines->Add(Edit1->Text+"::"+ Edit3->Text) ;Edit3->Text="";}//---------------------------------------------------------------------------void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add(Socket->ReceiveText()) ;}//---------------------------------------------------------------------------void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket){Memo1->Lines->Add(Socket->ReceiveText()) ;}//---------------------------------------------------------------------------//--------------------------------------------------------------------------- Цитата
X-tender Опубликовано 16 апреля, 2009 Жалоба Опубликовано 16 апреля, 2009 D3V3L0p3R, мде... в том то и дело... Я как раз и говорил что не единица должна быть. Счет начинается с 0, а не с 1. Тебе ошибку и выдавало на то, что обращается к не существующему элементу. Цитата
D3V3L0p3R Опубликовано 17 апреля, 2009 Жалоба Опубликовано 17 апреля, 2009 так пробовал все элементы, 0 ,1 и даже -1, всё равно эрорр был. Вот щас робит норм Цитата
X-tender Опубликовано 17 апреля, 2009 Жалоба Опубликовано 17 апреля, 2009 значит вообще массив был пустой Цитата
PapiruS Опубликовано 18 апреля, 2009 Жалоба Опубликовано 18 апреля, 2009 PapiruSчто-то типа того(синтаксис паскаля не очень помню):function dec_cnt(t:integer):integer;var i:integer;begin i=1; while (t>=10) do begin t:=t div 10; inc(i); end result:=i;end;function n_dec(t,i:integer):integer;var j:integer;begin j=dec_cnt(t)+1-i; while (j>=0) begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln("Result = ",n_dec(i,k));ps. Написал для теста на перле и попытался перевести в паскаль, сорри если что-то не так. на перле:use strict;sub dec_cnt{ my $t=shift; my $i=1; while ($t>=10) { $t/=10; $i++; } return $i;}sub n_dec{ my $t=shift; my $i=shift; my $j=dec_cnt($t)+1-$i; while (--$j) { $t/=10;} return $t%10;}my $k=<>;my $i=1;while ($k>dec_cnt($i)){$k-=dec_cnt($i);$i++;}print "Result=".n_dec($i,$k);можешь без процедур и функций сделать?Добавлено спустя 2 минуты 20 секунд:Lakersпомнишь ты решал задачуuses crt;var x,m1,m2:integer;beginclrscr;read(x);m1:=x;m2:=x;while x<>0 dobeginif (xm1) then m2:=x;if (xbeginm2:=m1;m1:=x;end;read(x);end;writeln('MIN1: ',m1);writeln('MIN2: ',m2);readkey;end. когда вводишь последовательность 1 2 0 он выдает типа: Min1=1; min2=1как исправить? Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.