Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

21.11.2008, 00:00
|
|
Banned
Регистрация: 07.11.2007
Сообщений: 301
Провел на форуме: 3428344
Репутация:
595
|
|
Задача: разработать алгоритм и составить программу на C++, для вывода на экран меню и решения задачи. определения номера четверти тригонометрического круга по знаку тригонометрической функции tg(x). Результат вывести на экран.
--
Сделать задачу нужно с переключателем switch. Я знаю, как сделать только через if, с переключателем понять не могу. Вот с if:
#include <iostream.h>
#include <match.h>
valid main ()
{
float x,y
cin << x;
y = tg(x)
if (y<0)
cout >> "/n номер четверти 1 и 4";
else
cot >> "/n номер четверти 2 и 3";
}
Если у кого есть возможность, напишите с переключателем switch.
|
|
|

21.11.2008, 00:04
|
|
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме: 2418438
Репутация:
93
|
|
Сообщение от InfernoNet
Задача: разработать алгоритм и составить программу на C++, для вывода на экран меню и решения задачи. определения номера четверти тригонометрического круга по знаку тригонометрической функции tg(x). Результат вывести на экран.
--
Сделать задачу нужно с переключателем switch. Я знаю, как сделать только через if, с переключателем понять не могу. Вот с if:
Если у кого есть возможность, напишите с переключателем switch.
y=tg(x);
switch(y)
{
case y>0:{ cout >> "/n номер четверти 2 и 3"; break;}
case y<0:{ cout >> "/n номер четверти 1 и 4"; break;}
}
|
|
|

22.11.2008, 00:56
|
|
Участник форума
Регистрация: 07.04.2008
Сообщений: 166
Провел на форуме: 1116075
Репутация:
68
|
|
помогите ришить задачу на Асамблере...
Задача///// найти минимальное число из заданих чисел 110(bin),33,FO(hex),1111(bin),251 нужно чтоб все ето щитала програмка в Асемблере
Кто поможет++++++++++++++++++++++++
|
|
|

22.11.2008, 01:42
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
вот нашел прогу ввода массива и поиска макс и мин элементов.
Код:
Ввести массив чисел, найти min и max, вывести на экран
.model small
.stack 100h
.data
massiv dw 80 dup(?)
msg1 db 0ah,0dh,“Vvodite chisla “,0ah,0dh,“$“
msg2 db 0ah,0dh,“max = $“
msg3 db 0ah,0dh,“min = $“
c10 dw 10
.code
start:
mov ax,@data
mov ds,ax
mov ah,09h ; вывод приглашения для ввода чисел
lea dx,msg1
int 21h
mov di,0 ; в di - max
mov si,32767 ; в si - min
xor dx,dx ; в dx - очередное число
input_loop:
mov ah,01h ; ввод символа
int 21h
cmp al,0dh ; если enter
je chislo ; то занести число в массив
cmp al,20h ; если пробел
je chislo ; то занести число в массив
sub al,30h ; вычитаем '0'
mov cl,al ; сохраняем цифру в cl
mov ax,dx ; в ax - введенное число
mul c10 ; умножаем на 10
xor ch,ch
add ax,cx ; добавляем цифру из al
mov dx,ax ; число снова в dx
jmp input_loop
chislo:
mov bx,cx ; в bx - порядковый номер очередного числа
shl bx,1 ; теперь - смещение очередного числа в массиве
mov massiv[bx],dx ; записываем в массив число
inc cx ; увеличиваем счетчик введенных чисел
cmp dx,si ; сравниваем число с минимальным
jb minimum ; если оно меньше, то jmp на minimum
cmp dx,di ; сравниваем число с максиальным
jg maximum ; если оно больше, то jmp на maximum
jmp chislo_cont ; иначе jmp на chislo_cont
minimum:
mov si,dx ; запоминаем минимальное число в si
jmp chislo_cont
maximum:
mov di,dx ; запоминаем максимальное число в di
chislo_cont:
xor dx,dx ; dx в ноль
cmp cx,80 ; если ввели 80-ое число
je end_input ; то конец ввода
cmp al,0dh ; если был нажат enter
je end_input ; то конец ввода
jmp input_loop
end_input:
mov ah,09h ; вывод на экран msg2
lea dx,msg2
int 21h
mov ax,di ; передаем в функцию output max через ax
call output ; выводим это число
lea dx,msg3 ; вывод на экран msg3
mov ah,9
int 21h
mov ax,si ; передаем в ouptput min через ax
call output ; выводим это число
mov ah,4ch ; завершение программы
int 21h
output proc ; процедура вывода числа, находящегосы в ax
xor cx,cx ; счетчик цифр
div_loop:
xor dx,dx ; подготовка к делению
div c10 ; деление
add dx,30h ; в dx - ASCII-код остатка от деления
push dx ; сохраняем его в стеке
inc cx ; инкремент счетчика
cmp ax,0 ; деление, покуда частное не нулевое
je out_loop
jmp div_loop
out_loop: ; цикл вывода числа
pop dx ; извлекаем из стека очередной остаток
mov ah,02h ; и выводим его на экран
int 21h
loop out_loop ; цикл продолжается cx раз
ret
output endp
end start
щя смотрю где то писал функции перевода в разные СЧ... найду - добавлю.
Вот нашел функцию перевода с BIN to HEX. имхо тебе будет нужно.
-------------------EDIT--------------------------
Код:
BinToHex Proc
mov cx,4
L3:
mov si,ax
and si,0fh;здесь я мож втыканул...или же маска and si,1111b
mov dl,strHex[si] ; DATA strHex DB '0123456789ABCDEF'
dec bx
mov [bx], dl
shr ax,4
dec cx
jnz L3
ret
BinToHex ENDP
-------------------EDIT--------------------------
Последний раз редактировалось NetSter; 22.11.2008 в 02:06..
|
|
|

22.11.2008, 02:02
|
|
Участник форума
Регистрация: 07.04.2008
Сообщений: 166
Провел на форуме: 1116075
Репутация:
68
|
|
Спасибо
|
|
|

22.11.2008, 18:58
|
|
Новичок
Регистрация: 12.10.2007
Сообщений: 6
Провел на форуме: 20178
Репутация:
1
|
|
Нужна помощь в написании ФТП клиента с радиобатоном для анонимного входа, поддержкой основных ф-й фтп(просмотр директорий, скачка, выкачка и тд.) Я думаю исходников в нете нарыть можно много, я и нарыл  но встретился с проблемой. Вопервых желательно код на С++ но можна и делфу. Во вторых большинство клиентов получаются досовскими, а радиобатон тогда нельзя добавить. переделать тоже не получается. Помогите хоть чем-то. Наперёд большое спасиба!!!
|
|
|

22.11.2008, 19:08
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
Сообщение от madjihad
Нужна помощь в написании ФТП клиента с....
можеш посмотреть сорцы нормального фтп сервера (с) by Pablo Software ЗДЕСЬ
или же если сильно горит недорого смотри ЗДЕСЬ
|
|
|

22.11.2008, 19:52
|
|
Участник форума
Регистрация: 08.11.2008
Сообщений: 164
Провел на форуме: 5779069
Репутация:
185
|
|
Народ выручайте,нужно лабу сделать на free pascale кто поможет тому огромный респект
Вот задачи
1)сколько чисел натурального ряда,начиная с А,нужно взять,чтобы сумма нечетных из них не превосходила число ,заданное с клавиатуры.Число Ф задать случайно из диапазона от 1 до 10.
2)Найти сумму всех элементов массива целых чисел,которые меньше средьнего арифмитического элементов массива.Размерность массива 20.Заполнение масива осуществить случайными числами от 150 до 300.
3)Натуральное число из Н цифр являеться числом Амстронга,если сумма его цифр,возведенная в Н степень равна этому числу.Найти все числа Амстронга среди четырехзначных чисел.
4)Дан массив размера 10.Обнулить элементы массыива,расположенные между его минимальным и максимальными элементами(не включая мин. и макс. элементы)
|
|
|

22.11.2008, 21:35
|
|
Новичок
Регистрация: 26.10.2008
Сообщений: 9
Провел на форуме: 25836
Репутация:
4
|
|
У меня на следующую прогу(преобразоване латинских заглавных букв в строчные) masm выдает такую ошибку:fatal error L1101:invalid object module pos:1E Record type:570C. Объясните мне, что это значит. и также хотелось бы узнать как ее исправить.
Сама прога:
CSEG segment
org 100h
assume CS:CSEG, DS:CSEG, SS:CSEG, ES:CSEG
start:
;очистка экрана
MOV AX,0600H ;AH=06H - УСТАНОВКА ПРОКРУТКИ, AL=00 - ВО ВЕСЬ ЭКРАН
MOV BH,07 ;ЧЕРНО-БЕЛЫЙ ЭКРАН
MOV CX,0000 ;ВЕРХНЯЯ ЛЕВАЯ ПОЗИЦИЯ
MOV DX,184FH ;НИЖНЯЯ ПРАВАЯ ПОЗИЦИЯ
INT 10H ;УПРАВЛЕНИЕ В BIOS
;УСТАНОВКА КУРСОРА В ПОЗИЦИЮ 00
MOV AH,02 ;ЗАПРОС НА УСТАНОВКУ КУРСОРА
MOV BH,00 ;ВЫБОР ВИДЕОСТРАНИЦЫ
MOV DX,0000 ;УСТАНОВКА КУРСОРА
INT 10H ;УПРАВЛЕНИЕ В BIOS
;ВЫВОД ПРИГЛАШЕНИЯ НА ВВОД
MOV AH,09 ;ФУНКЦИЯ ВЫВОДА СТРОКИ
MOV DX,OFFSET MSG1 ;АДРЕС СТРОКИ
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
;СЧИТЫВАНИЕ СИМВОЛОВ, ВВЕДЕННЫХ С КЛВИАТУРЫ
MOV AH,3FH ;ФУНКЦИЯ ВВОДА
MOV BX,00 ;НОМЕР ДЛЯ КЛАВИАТУРЫ
MOV CX,254 ;ДОПУСТИМОЕ КОЛИЧЕСТВО ВВЕДЕННЫХ СИМВОЛОВ
MOV DX,OFFSET INBUF ;ЗАНЕСЕНИЕ АДРЕСА БУФЕРА В РЕГИСТР DX
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
SUB AX,02 ;ИЗОБЩЕГО КОЛИЧЕСТВА СИМВОЛОВ ВЫЧИТАЮТСЯ СИМВОЛЫ "ВВОД" И "КОНЕЦ СТРОКИ"
;ИЗМЕНЕНИЕ ЗАГЛАВНЫХ БУКВ НА СТРОЧНЫЕ
MOV SI,OFFSET INBUF ;В РЕГИСТР sI (ИНДЕКС ПРИЕМНИКА) ЗАНОСИМ АДРЕС ПЕРВОГО СИМВОЛА
MOV CX,AX ;В РЕГИСТР CX ЗАНОСИМ КОЛИЧЕСТВО СИМВОЛОВ
L1:
MOV BL,[SI] ;В BL ЗАНОСИМ ПРОСМАТРИВАЕМЫЙ ФАЙЛ
CMP BL,64 ;СРАВНИВАЕМ С 64 65=A
JBE VYHOD ;ЕСЛИ МЕНЬШЕ ИЛИ РАВНО ЗАКАНЧИВАЕМ ПРОСТМОТР
CMP BL,90 ;СРАВНИВАЕМ С 90 90=Z
JA STROKI ;ЕСЛИ БОЛЬШЕ ПРОВЕРИМ НА СТРОЧНОСТЬ
ADD BL,32 ;ЕСЛИ ЗАГЛАВНАЯ ЛАТИНСКАЯ СДЕЛАЕМ СТРОЧНОЙ
MOV [SI],BL ;ВЕРНЕМ НА МЕСТО
JMP VYHOD ;КОНЕЦ
STROKI:
CMP BL,97 ;СРАВНИВАЕМ С 97 97=a
JB VYHOD ;ЕСЛИ МЕНЬШЕ ЗАКАНЧИВАЕМ
CMP BL,122 ;СРАВНИВАЕМ С 122 122=z
JA VYHOD ;ЕСЛИ БОЛЬШЕ ЗАКАНЧИВАЕМ
MOV [SI],BL ;ВОЗВРАЩАЕМ НА МЕСТО
VYHOD:
INC SI ;ПЕРЕХОД НА СЛЕДУЮЩИЙ СИМВОЛ
LOOP L1
MOV BL,BYTE PTR '$'
MOV [SI],BL ;ЗАТЫКАЕТ СТРОКУ СИМВОЛОМ $
;ВЫВОД НОВОЙ СТРОКИ
MOV AH,09
MOV DX,OFFSET MSG2
INT 21H
MOV DX,OFFSET INBUF
INT 21H
INT 20H ;ЗАВЕРШЕНИЕ ПРОГРАММЫ
MSG1 DB "ENTER STRING OF SYMBOLS:$"
MSG2 DB "CONVERT STRING:$"
INBUF DB 256 DUP (' ')
|
|
|

22.11.2008, 22:54
|
|
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме: 668329
Репутация:
106
|
|
4)Дан массив размера 10.Обнулить элементы массыива,расположенные между его минимальным и максимальными элементами(не включая мин. и макс. элементы)
Код :
uses crt;
const num = 10;
var mas: array [1..num] of integer; //показываем проге что есть массив
i,min,max: integer; // показываем что есть числа i, min и max
begin
clrscr;
for i:=1 to num do begin mas[i]:=random(100)+1; write(mas[i]:3); end; //записываем в массив случайные числа и выводим на экран
writeln; writeln;
min:=mas[1]; / представим что мин.число равно минэлементу.
max:=mas[num]; // представим что макс.число равно макс.элементу
// перебираем весь массив чтобы найти настоящие мин. и максиальные элементы.
for i:=1 to num do
begin
if min>mas[i] then min:=mas[i];
if max<mas[i] then max:=mas[i];
end;
// выводим настоящие мин. и макс.элементы.
writeln('min=',min);
writeln('max=',max);
writeln;
// перебираем все элементы массива обнуляя их, кроме мин. и макс. элементов.
for i:=1 to num do
if (mas[i]<>max) and (mas[i]<>min) then mas[i]:=0;
//выводим полученный массив
for i:=1 to num do write(mas[i]:3);
readkey;
end.
Удали все комментарии и заработает
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|